< prev index next >

src/hotspot/share/opto/macro.hpp

Print this page
rev 51766 : 8210829: Modularize allocations in C2


 176                                     Node* src,  Node* src_offset,
 177                                     Node* dest, Node* dest_offset,
 178                                     Node* copy_length, bool dest_uninitialized);
 179 
 180   void expand_arraycopy_node(ArrayCopyNode *ac);
 181 
 182   int replace_input(Node *use, Node *oldref, Node *newref);
 183   void copy_call_debug_info(CallNode *oldcall, CallNode * newcall);
 184   Node* opt_bits_test(Node* ctrl, Node* region, int edge, Node* word, int mask, int bits, bool return_fast_path = false);
 185   void copy_predefined_input_for_runtime_call(Node * ctrl, CallNode* oldcall, CallNode* call);
 186   CallNode* make_slow_call(CallNode *oldcall, const TypeFunc* slow_call_type, address slow_call,
 187                            const char* leaf_name, Node* slow_path, Node* parm0, Node* parm1,
 188                            Node* parm2);
 189   void extract_call_projections(CallNode *call);
 190 
 191   Node* initialize_object(AllocateNode* alloc,
 192                           Node* control, Node* rawmem, Node* object,
 193                           Node* klass_node, Node* length,
 194                           Node* size_in_bytes);
 195 
 196   Node* prefetch_allocation(Node* i_o,
 197                             Node*& needgc_false, Node*& contended_phi_rawmem,
 198                             Node* old_eden_top, Node* new_eden_top,
 199                             Node* length);
 200 
 201   Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
 202 
 203 public:
 204   PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) {
 205     _igvn.set_delay_transform(true);
 206   }
 207   void eliminate_macro_nodes();
 208   bool expand_macro_nodes();
 209 
 210   PhaseIterGVN &igvn() const { return _igvn; }
 211 
 212   // Members accessed from BarrierSetC2
 213   void replace_node(Node* source, Node* target) { _igvn.replace_node(source, target); }
 214   Node* intcon(jint con)        const { return _igvn.intcon(con); }
 215   Node* longcon(jlong con)      const { return _igvn.longcon(con); }
 216   Node* makecon(const Type *t)  const { return _igvn.makecon(t); }
 217   Node* top()                   const { return C->top(); }





 218 };
 219 
 220 #endif // SHARE_VM_OPTO_MACRO_HPP


 176                                     Node* src,  Node* src_offset,
 177                                     Node* dest, Node* dest_offset,
 178                                     Node* copy_length, bool dest_uninitialized);
 179 
 180   void expand_arraycopy_node(ArrayCopyNode *ac);
 181 
 182   int replace_input(Node *use, Node *oldref, Node *newref);
 183   void copy_call_debug_info(CallNode *oldcall, CallNode * newcall);
 184   Node* opt_bits_test(Node* ctrl, Node* region, int edge, Node* word, int mask, int bits, bool return_fast_path = false);
 185   void copy_predefined_input_for_runtime_call(Node * ctrl, CallNode* oldcall, CallNode* call);
 186   CallNode* make_slow_call(CallNode *oldcall, const TypeFunc* slow_call_type, address slow_call,
 187                            const char* leaf_name, Node* slow_path, Node* parm0, Node* parm1,
 188                            Node* parm2);
 189   void extract_call_projections(CallNode *call);
 190 
 191   Node* initialize_object(AllocateNode* alloc,
 192                           Node* control, Node* rawmem, Node* object,
 193                           Node* klass_node, Node* length,
 194                           Node* size_in_bytes);
 195 





 196   Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
 197 
 198 public:
 199   PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) {
 200     _igvn.set_delay_transform(true);
 201   }
 202   void eliminate_macro_nodes();
 203   bool expand_macro_nodes();
 204 
 205   PhaseIterGVN &igvn() const { return _igvn; }
 206 
 207   // Members accessed from BarrierSetC2
 208   void replace_node(Node* source, Node* target) { _igvn.replace_node(source, target); }
 209   Node* intcon(jint con)        const { return _igvn.intcon(con); }
 210   Node* longcon(jlong con)      const { return _igvn.longcon(con); }
 211   Node* makecon(const Type *t)  const { return _igvn.makecon(t); }
 212   Node* top()                   const { return C->top(); }
 213 
 214   Node* prefetch_allocation(Node* i_o,
 215                             Node*& needgc_false, Node*& contended_phi_rawmem,
 216                             Node* old_eden_top, Node* new_eden_top,
 217                             intx lines);
 218 };
 219 
 220 #endif // SHARE_VM_OPTO_MACRO_HPP
< prev index next >