< prev index next >

src/share/vm/opto/macro.hpp

Print this page




  49     return (offset == 0)? ptr: basic_plus_adr(base, ptr, MakeConX(offset));
  50   }
  51   Node* basic_plus_adr(Node* base, Node* offset) {
  52     return basic_plus_adr(base, base, offset);
  53   }
  54   Node* basic_plus_adr(Node* base, Node* ptr, Node* offset) {
  55     Node* adr = new AddPNode(base, ptr, offset);
  56     return transform_later(adr);
  57   }
  58   Node* transform_later(Node* n) {
  59     // equivalent to _gvn.transform in GraphKit, Ideal, etc.
  60     _igvn.register_new_node_with_optimizer(n);
  61     return n;
  62   }
  63   void set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr);
  64   Node* make_load( Node* ctl, Node* mem, Node* base, int offset,
  65                    const Type* value_type, BasicType bt);
  66   Node* make_store(Node* ctl, Node* mem, Node* base, int offset,
  67                    Node* value, BasicType bt);
  68 













  69   // projections extracted from a call node
  70   ProjNode *_fallthroughproj;
  71   ProjNode *_fallthroughcatchproj;
  72   ProjNode *_ioproj_fallthrough;
  73   ProjNode *_ioproj_catchall;
  74   ProjNode *_catchallcatchproj;
  75   ProjNode *_memproj_fallthrough;
  76   ProjNode *_memproj_catchall;
  77   ProjNode *_resproj;
  78 
  79   // Additional data collected during macro expansion
  80   bool _has_locks;
  81 
  82   void expand_allocate(AllocateNode *alloc);
  83   void expand_allocate_array(AllocateArrayNode *alloc);
  84   void expand_allocate_common(AllocateNode* alloc,
  85                               Node* length,
  86                               const TypeFunc* slow_call_type,
  87                               address slow_call_address);
  88   Node *value_from_mem(Node *mem, Node *ctl, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, AllocateNode *alloc);




  49     return (offset == 0)? ptr: basic_plus_adr(base, ptr, MakeConX(offset));
  50   }
  51   Node* basic_plus_adr(Node* base, Node* offset) {
  52     return basic_plus_adr(base, base, offset);
  53   }
  54   Node* basic_plus_adr(Node* base, Node* ptr, Node* offset) {
  55     Node* adr = new AddPNode(base, ptr, offset);
  56     return transform_later(adr);
  57   }
  58   Node* transform_later(Node* n) {
  59     // equivalent to _gvn.transform in GraphKit, Ideal, etc.
  60     _igvn.register_new_node_with_optimizer(n);
  61     return n;
  62   }
  63   void set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr);
  64   Node* make_load( Node* ctl, Node* mem, Node* base, int offset,
  65                    const Type* value_type, BasicType bt);
  66   Node* make_store(Node* ctl, Node* mem, Node* base, int offset,
  67                    Node* value, BasicType bt);
  68 
  69   // For Heap-related sampling - will generate code to invoke call()
  70   // if the given sampling parameters are true.
  71   void conditional_sample(Node *should_sample,
  72                           BoolTest::mask test,
  73                           float probability,
  74                           CallLeafNode *call,
  75                           Node *thread,
  76                           Node **fast_oop_ctrl,
  77                           Node **fast_oop_rawmem,
  78                           Node **fast_oop,
  79                           Node* size_in_bytes,
  80                           Node *in_node);
  81 
  82   // projections extracted from a call node
  83   ProjNode *_fallthroughproj;
  84   ProjNode *_fallthroughcatchproj;
  85   ProjNode *_ioproj_fallthrough;
  86   ProjNode *_ioproj_catchall;
  87   ProjNode *_catchallcatchproj;
  88   ProjNode *_memproj_fallthrough;
  89   ProjNode *_memproj_catchall;
  90   ProjNode *_resproj;
  91 
  92   // Additional data collected during macro expansion
  93   bool _has_locks;
  94 
  95   void expand_allocate(AllocateNode *alloc);
  96   void expand_allocate_array(AllocateArrayNode *alloc);
  97   void expand_allocate_common(AllocateNode* alloc,
  98                               Node* length,
  99                               const TypeFunc* slow_call_type,
 100                               address slow_call_address);
 101   Node *value_from_mem(Node *mem, Node *ctl, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, AllocateNode *alloc);


< prev index next >