src/share/vm/opto/idealKit.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8034812 Sdiff src/share/vm/opto

src/share/vm/opto/idealKit.hpp

Print this page




 156   MergeMemNode* merged_memory()         { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); }
 157   void set_all_memory(Node* mem)        { _cvstate->set_req(TypeFunc::Memory, mem); }
 158   Node* i_o()                           { return _cvstate->in(TypeFunc::I_O); }
 159   void set_i_o(Node* c)                 { _cvstate->set_req(TypeFunc::I_O, c); }
 160   void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); }
 161   Node* value(IdealVariable& v)         { return _cvstate->in(first_var + v.id()); }
 162   void dead(IdealVariable& v)           { set(v, (Node*)NULL); }
 163   void if_then(Node* left, BoolTest::mask relop, Node* right,
 164                float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN,
 165                bool push_new_state = true);
 166   void else_();
 167   void end_if();
 168   void loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask cmp, Node* limit,
 169             float prob = PROB_LIKELY(0.9), float cnt = COUNT_UNKNOWN);
 170   void end_loop();
 171   Node* make_label(int goto_ct);
 172   void bind(Node* lab);
 173   void goto_(Node* lab, bool bind = false);
 174   void declarations_done();
 175 
 176   Node* IfTrue(IfNode* iff)  { return transform(new (C) IfTrueNode(iff)); }
 177   Node* IfFalse(IfNode* iff) { return transform(new (C) IfFalseNode(iff)); }
 178 
 179   // Data
 180   Node* ConI(jint k) { return (Node*)gvn().intcon(k); }
 181   Node* makecon(const Type *t)  const { return _gvn.makecon(t); }
 182 
 183   Node* AddI(Node* l, Node* r) { return transform(new (C) AddINode(l, r)); }
 184   Node* SubI(Node* l, Node* r) { return transform(new (C) SubINode(l, r)); }
 185   Node* AndI(Node* l, Node* r) { return transform(new (C) AndINode(l, r)); }
 186   Node* MaxI(Node* l, Node* r) { return transform(new (C) MaxINode(l, r)); }
 187   Node* LShiftI(Node* l, Node* r) { return transform(new (C) LShiftINode(l, r)); }
 188   Node* CmpI(Node* l, Node* r) { return transform(new (C) CmpINode(l, r)); }
 189   Node* Bool(Node* cmp, BoolTest::mask relop) { return transform(new (C) BoolNode(cmp, relop)); }
 190   void  increment(IdealVariable& v, Node* j)  { set(v, AddI(value(v), j)); }
 191   void  decrement(IdealVariable& v, Node* j)  { set(v, SubI(value(v), j)); }
 192 
 193   Node* CmpL(Node* l, Node* r) { return transform(new (C) CmpLNode(l, r)); }
 194 
 195   // TLS
 196   Node* thread()  {  return gvn().transform(new (C) ThreadLocalNode()); }
 197 
 198   // Pointers
 199 
 200   // Raw address should be transformed regardless 'delay_transform' flag
 201   // to produce canonical form CastX2P(offset).
 202   Node* AddP(Node *base, Node *ptr, Node *off) { return _gvn.transform(new (C) AddPNode(base, ptr, off)); }
 203 
 204   Node* CmpP(Node* l, Node* r) { return transform(new (C) CmpPNode(l, r)); }
 205 #ifdef _LP64
 206   Node* XorX(Node* l, Node* r) { return transform(new (C) XorLNode(l, r)); }
 207 #else // _LP64
 208   Node* XorX(Node* l, Node* r) { return transform(new (C) XorINode(l, r)); }
 209 #endif // _LP64
 210   Node* URShiftX(Node* l, Node* r) { return transform(new (C) URShiftXNode(l, r)); }
 211   Node* ConX(jint k) { return (Node*)gvn().MakeConX(k); }
 212   Node* CastPX(Node* ctl, Node* p) { return transform(new (C) CastP2XNode(ctl, p)); }
 213 
 214   // Memory operations
 215 
 216   // This is the base version which is given an alias index.
 217   Node* load(Node* ctl,
 218              Node* adr,
 219              const Type* t,
 220              BasicType bt,
 221              int adr_idx,
 222              bool require_atomic_access = false);
 223 
 224   // Return the new StoreXNode
 225   Node* store(Node* ctl,
 226               Node* adr,
 227               Node* val,
 228               BasicType bt,
 229               int adr_idx,
 230               MemNode::MemOrd mo,
 231               bool require_atomic_access = false);
 232 




 156   MergeMemNode* merged_memory()         { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); }
 157   void set_all_memory(Node* mem)        { _cvstate->set_req(TypeFunc::Memory, mem); }
 158   Node* i_o()                           { return _cvstate->in(TypeFunc::I_O); }
 159   void set_i_o(Node* c)                 { _cvstate->set_req(TypeFunc::I_O, c); }
 160   void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); }
 161   Node* value(IdealVariable& v)         { return _cvstate->in(first_var + v.id()); }
 162   void dead(IdealVariable& v)           { set(v, (Node*)NULL); }
 163   void if_then(Node* left, BoolTest::mask relop, Node* right,
 164                float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN,
 165                bool push_new_state = true);
 166   void else_();
 167   void end_if();
 168   void loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask cmp, Node* limit,
 169             float prob = PROB_LIKELY(0.9), float cnt = COUNT_UNKNOWN);
 170   void end_loop();
 171   Node* make_label(int goto_ct);
 172   void bind(Node* lab);
 173   void goto_(Node* lab, bool bind = false);
 174   void declarations_done();
 175 
 176   Node* IfTrue(IfNode* iff)  { return transform(new IfTrueNode(iff)); }
 177   Node* IfFalse(IfNode* iff) { return transform(new IfFalseNode(iff)); }
 178 
 179   // Data
 180   Node* ConI(jint k) { return (Node*)gvn().intcon(k); }
 181   Node* makecon(const Type *t)  const { return _gvn.makecon(t); }
 182 
 183   Node* AddI(Node* l, Node* r) { return transform(new AddINode(l, r)); }
 184   Node* SubI(Node* l, Node* r) { return transform(new SubINode(l, r)); }
 185   Node* AndI(Node* l, Node* r) { return transform(new AndINode(l, r)); }
 186   Node* MaxI(Node* l, Node* r) { return transform(new MaxINode(l, r)); }
 187   Node* LShiftI(Node* l, Node* r) { return transform(new LShiftINode(l, r)); }
 188   Node* CmpI(Node* l, Node* r) { return transform(new CmpINode(l, r)); }
 189   Node* Bool(Node* cmp, BoolTest::mask relop) { return transform(new BoolNode(cmp, relop)); }
 190   void  increment(IdealVariable& v, Node* j)  { set(v, AddI(value(v), j)); }
 191   void  decrement(IdealVariable& v, Node* j)  { set(v, SubI(value(v), j)); }
 192 
 193   Node* CmpL(Node* l, Node* r) { return transform(new CmpLNode(l, r)); }
 194 
 195   // TLS
 196   Node* thread()  {  return gvn().transform(new ThreadLocalNode()); }
 197 
 198   // Pointers
 199 
 200   // Raw address should be transformed regardless 'delay_transform' flag
 201   // to produce canonical form CastX2P(offset).
 202   Node* AddP(Node *base, Node *ptr, Node *off) { return _gvn.transform(new AddPNode(base, ptr, off)); }
 203 
 204   Node* CmpP(Node* l, Node* r) { return transform(new CmpPNode(l, r)); }
 205 #ifdef _LP64
 206   Node* XorX(Node* l, Node* r) { return transform(new XorLNode(l, r)); }
 207 #else // _LP64
 208   Node* XorX(Node* l, Node* r) { return transform(new XorINode(l, r)); }
 209 #endif // _LP64
 210   Node* URShiftX(Node* l, Node* r) { return transform(new URShiftXNode(l, r)); }
 211   Node* ConX(jint k) { return (Node*)gvn().MakeConX(k); }
 212   Node* CastPX(Node* ctl, Node* p) { return transform(new CastP2XNode(ctl, p)); }
 213 
 214   // Memory operations
 215 
 216   // This is the base version which is given an alias index.
 217   Node* load(Node* ctl,
 218              Node* adr,
 219              const Type* t,
 220              BasicType bt,
 221              int adr_idx,
 222              bool require_atomic_access = false);
 223 
 224   // Return the new StoreXNode
 225   Node* store(Node* ctl,
 226               Node* adr,
 227               Node* val,
 228               BasicType bt,
 229               int adr_idx,
 230               MemNode::MemOrd mo,
 231               bool require_atomic_access = false);
 232 


src/share/vm/opto/idealKit.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File