< prev index next >

src/hotspot/share/opto/macro.hpp

Print this page




 175                                      Node* dest, Node* dest_offset,
 176                                      Node* copy_length, bool dest_uninitialized);
 177   Node* generate_generic_arraycopy(Node** ctrl, MergeMemNode** mem,
 178                                    const TypePtr* adr_type,
 179                                    Node* src,  Node* src_offset,
 180                                    Node* dest, Node* dest_offset,
 181                                    Node* copy_length, bool dest_uninitialized);
 182   void generate_unchecked_arraycopy(Node** ctrl, MergeMemNode** mem,
 183                                     const TypePtr* adr_type,
 184                                     BasicType basic_elem_type,
 185                                     bool disjoint_bases,
 186                                     Node* src,  Node* src_offset,
 187                                     Node* dest, Node* dest_offset,
 188                                     Node* copy_length, bool dest_uninitialized);
 189   const TypePtr* adjust_parameters_for_vt(const TypeAryPtr* top_dest, Node*& src_offset,
 190                                           Node*& dest_offset, Node*& length, BasicType& dest_elem,
 191                                           Node*& dest_length);
 192   void expand_arraycopy_node(ArrayCopyNode *ac);
 193 
 194   int replace_input(Node *use, Node *oldref, Node *newref);
 195   void copy_call_debug_info(CallNode *oldcall, CallNode * newcall);
 196   Node* opt_bits_test(Node* ctrl, Node* region, int edge, Node* word, int mask, int bits, bool return_fast_path = false);
 197   void copy_predefined_input_for_runtime_call(Node * ctrl, CallNode* oldcall, CallNode* call);
 198   CallNode* make_slow_call(CallNode *oldcall, const TypeFunc* slow_call_type, address slow_call,
 199                            const char* leaf_name, Node* slow_path, Node* parm0, Node* parm1,
 200                            Node* parm2);
 201   void extract_call_projections(CallNode *call);
 202 
 203   Node* initialize_object(AllocateNode* alloc,
 204                           Node* control, Node* rawmem, Node* object,
 205                           Node* klass_node, Node* length,
 206                           Node* size_in_bytes);
 207 
 208   Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
 209 
 210   bool can_try_zeroing_elimination(AllocateArrayNode* alloc, Node* src, Node* dest) const;
 211 
 212 public:
 213   PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) {
 214     _igvn.set_delay_transform(true);
 215   }


 175                                      Node* dest, Node* dest_offset,
 176                                      Node* copy_length, bool dest_uninitialized);
 177   Node* generate_generic_arraycopy(Node** ctrl, MergeMemNode** mem,
 178                                    const TypePtr* adr_type,
 179                                    Node* src,  Node* src_offset,
 180                                    Node* dest, Node* dest_offset,
 181                                    Node* copy_length, bool dest_uninitialized);
 182   void generate_unchecked_arraycopy(Node** ctrl, MergeMemNode** mem,
 183                                     const TypePtr* adr_type,
 184                                     BasicType basic_elem_type,
 185                                     bool disjoint_bases,
 186                                     Node* src,  Node* src_offset,
 187                                     Node* dest, Node* dest_offset,
 188                                     Node* copy_length, bool dest_uninitialized);
 189   const TypePtr* adjust_parameters_for_vt(const TypeAryPtr* top_dest, Node*& src_offset,
 190                                           Node*& dest_offset, Node*& length, BasicType& dest_elem,
 191                                           Node*& dest_length);
 192   void expand_arraycopy_node(ArrayCopyNode *ac);
 193 
 194   int replace_input(Node *use, Node *oldref, Node *newref);

 195   Node* opt_bits_test(Node* ctrl, Node* region, int edge, Node* word, int mask, int bits, bool return_fast_path = false);
 196   void copy_predefined_input_for_runtime_call(Node * ctrl, CallNode* oldcall, CallNode* call);
 197   CallNode* make_slow_call(CallNode *oldcall, const TypeFunc* slow_call_type, address slow_call,
 198                            const char* leaf_name, Node* slow_path, Node* parm0, Node* parm1,
 199                            Node* parm2);
 200   void extract_call_projections(CallNode *call);
 201 
 202   Node* initialize_object(AllocateNode* alloc,
 203                           Node* control, Node* rawmem, Node* object,
 204                           Node* klass_node, Node* length,
 205                           Node* size_in_bytes);
 206 
 207   Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
 208 
 209   bool can_try_zeroing_elimination(AllocateArrayNode* alloc, Node* src, Node* dest) const;
 210 
 211 public:
 212   PhaseMacroExpand(PhaseIterGVN &igvn) : Phase(Macro_Expand), _igvn(igvn), _has_locks(false) {
 213     _igvn.set_delay_transform(true);
 214   }
< prev index next >