< prev index next >

src/hotspot/share/opto/macro.hpp

Print this page
rev 53542 : Move Shenandoah clone-expansion from shared code to ShBSC2


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


 185   void copy_call_debug_info(CallNode *oldcall, CallNode * newcall);
 186   Node* opt_bits_test(Node* ctrl, Node* region, int edge, Node* word, int mask, int bits, bool return_fast_path = false);
 187   void copy_predefined_input_for_runtime_call(Node * ctrl, CallNode* oldcall, CallNode* call);
 188   CallNode* make_slow_call(CallNode *oldcall, const TypeFunc* slow_call_type, address slow_call,
 189                            const char* leaf_name, Node* slow_path, Node* parm0, Node* parm1,
 190                            Node* parm2);
 191   void extract_call_projections(CallNode *call);
 192 
 193   Node* initialize_object(AllocateNode* alloc,
 194                           Node* control, Node* rawmem, Node* object,
 195                           Node* klass_node, Node* length,
 196                           Node* size_in_bytes);
 197 
 198   Node* prefetch_allocation(Node* i_o,
 199                             Node*& needgc_false, Node*& contended_phi_rawmem,
 200                             Node* old_eden_top, Node* new_eden_top,
 201                             Node* length);
 202 
 203   Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
 204 



 205 public:
 206   PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) {
 207     _igvn.set_delay_transform(true);
 208   }
 209   void eliminate_macro_nodes();
 210   bool expand_macro_nodes();
 211 
 212   PhaseIterGVN &igvn() const { return _igvn; }
 213 
 214   // Members accessed from BarrierSetC2
 215   void replace_node(Node* source, Node* target) { _igvn.replace_node(source, target); }
 216   Node* intcon(jint con)        const { return _igvn.intcon(con); }
 217   Node* longcon(jlong con)      const { return _igvn.longcon(con); }
 218   Node* makecon(const Type *t)  const { return _igvn.makecon(t); }
 219   Node* top()                   const { return C->top(); }
 220 };
 221 
 222 #endif // SHARE_VM_OPTO_MACRO_HPP
< prev index next >