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)); }
|