< prev index next >

src/hotspot/share/opto/idealKit.hpp

Print this page

146   IdealKit(GraphKit* gkit, bool delay_all_transforms = false, bool has_declarations = false);
147   ~IdealKit() {
148     stop();
149   }
150   void sync_kit(GraphKit* gkit);
151 
152   // Control
153   Node* ctrl()                          { return _cvstate->in(TypeFunc::Control); }
154   void set_ctrl(Node* ctrl)             { _cvstate->set_req(TypeFunc::Control, ctrl); }
155   Node* top()                           { return C->top(); }
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*)nullptr); }
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)); }

146   IdealKit(GraphKit* gkit, bool delay_all_transforms = false, bool has_declarations = false);
147   ~IdealKit() {
148     stop();
149   }
150   void sync_kit(GraphKit* gkit);
151 
152   // Control
153   Node* ctrl()                          { return _cvstate->in(TypeFunc::Control); }
154   void set_ctrl(Node* ctrl)             { _cvstate->set_req(TypeFunc::Control, ctrl); }
155   Node* top()                           { return C->top(); }
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*)nullptr); }
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 if_then(Node* bol, float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN, bool push_new_state = true);
167   void else_();
168   void end_if();
169   void loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask cmp, Node* limit,
170             float prob = PROB_LIKELY(0.9), float cnt = COUNT_UNKNOWN);
171   void end_loop();
172   Node* make_label(int goto_ct);
173   void bind(Node* lab);
174   void goto_(Node* lab, bool bind = false);
175   void declarations_done();
176 
177   Node* IfTrue(IfNode* iff)  { return transform(new IfTrueNode(iff)); }
178   Node* IfFalse(IfNode* iff) { return transform(new IfFalseNode(iff)); }
179 
180   // Data
181   Node* ConI(jint k) { return (Node*)gvn().intcon(k); }
182   Node* makecon(const Type *t)  const { return _gvn.makecon(t); }
183 
184   Node* AddI(Node* l, Node* r) { return transform(new AddINode(l, r)); }
185   Node* SubI(Node* l, Node* r) { return transform(new SubINode(l, r)); }
186   Node* AndI(Node* l, Node* r) { return transform(new AndINode(l, r)); }
< prev index next >