83 void expand_allocate_array(AllocateArrayNode *alloc); |
83 void expand_allocate_array(AllocateArrayNode *alloc); |
84 void expand_allocate_common(AllocateNode* alloc, |
84 void expand_allocate_common(AllocateNode* alloc, |
85 Node* length, |
85 Node* length, |
86 const TypeFunc* slow_call_type, |
86 const TypeFunc* slow_call_type, |
87 address slow_call_address); |
87 address slow_call_address); |
88 Node *value_from_mem(Node *mem, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, Node *alloc); |
88 Node *value_from_mem(Node *mem, Node *ctl, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, AllocateNode *alloc); |
89 Node *value_from_mem_phi(Node *mem, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, Node *alloc, Node_Stack *value_phis, int level); |
89 Node *value_from_mem_phi(Node *mem, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, AllocateNode *alloc, Node_Stack *value_phis, int level); |
90 |
90 |
91 bool eliminate_boxing_node(CallStaticJavaNode *boxing); |
91 bool eliminate_boxing_node(CallStaticJavaNode *boxing); |
92 bool eliminate_allocate_node(AllocateNode *alloc); |
92 bool eliminate_allocate_node(AllocateNode *alloc); |
93 bool can_eliminate_allocation(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints); |
93 bool can_eliminate_allocation(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints); |
94 bool scalar_replacement(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints_done); |
94 bool scalar_replacement(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints_done); |
198 Node* prefetch_allocation(Node* i_o, |
198 Node* prefetch_allocation(Node* i_o, |
199 Node*& needgc_false, Node*& contended_phi_rawmem, |
199 Node*& needgc_false, Node*& contended_phi_rawmem, |
200 Node* old_eden_top, Node* new_eden_top, |
200 Node* old_eden_top, Node* new_eden_top, |
201 Node* length); |
201 Node* length); |
202 |
202 |
|
203 Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, BasicType ft, const Type *ftype, AllocateNode *alloc); |
|
204 |
203 public: |
205 public: |
204 PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) { |
206 PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) { |
205 _igvn.set_delay_transform(true); |
207 _igvn.set_delay_transform(true); |
206 } |
208 } |
207 void eliminate_macro_nodes(); |
209 void eliminate_macro_nodes(); |