src/share/vm/opto/loopUnswitch.cpp

changeset 4115
e626685e9f6c
parent 3847
5e990493719e
child 4153
b9a9ed0f8eeb
equal deleted inserted replaced
4114:06f52c4d0e18 4115:e626685e9f6c
221 _igvn.rehash_node_delayed(entry); 221 _igvn.rehash_node_delayed(entry);
222 IdealLoopTree* outer_loop = loop->_parent; 222 IdealLoopTree* outer_loop = loop->_parent;
223 223
224 Node *cont = _igvn.intcon(1); 224 Node *cont = _igvn.intcon(1);
225 set_ctrl(cont, C->root()); 225 set_ctrl(cont, C->root());
226 Node* opq = new (C, 2) Opaque1Node(C, cont); 226 Node* opq = new (C) Opaque1Node(C, cont);
227 register_node(opq, outer_loop, entry, dom_depth(entry)); 227 register_node(opq, outer_loop, entry, dom_depth(entry));
228 Node *bol = new (C, 2) Conv2BNode(opq); 228 Node *bol = new (C) Conv2BNode(opq);
229 register_node(bol, outer_loop, entry, dom_depth(entry)); 229 register_node(bol, outer_loop, entry, dom_depth(entry));
230 IfNode* iff = new (C, 2) IfNode(entry, bol, PROB_MAX, COUNT_UNKNOWN); 230 IfNode* iff = new (C) IfNode(entry, bol, PROB_MAX, COUNT_UNKNOWN);
231 register_node(iff, outer_loop, entry, dom_depth(entry)); 231 register_node(iff, outer_loop, entry, dom_depth(entry));
232 ProjNode* iffast = new (C, 1) IfTrueNode(iff); 232 ProjNode* iffast = new (C) IfTrueNode(iff);
233 register_node(iffast, outer_loop, iff, dom_depth(iff)); 233 register_node(iffast, outer_loop, iff, dom_depth(iff));
234 ProjNode* ifslow = new (C, 1) IfFalseNode(iff); 234 ProjNode* ifslow = new (C) IfFalseNode(iff);
235 register_node(ifslow, outer_loop, iff, dom_depth(iff)); 235 register_node(ifslow, outer_loop, iff, dom_depth(iff));
236 236
237 // Clone the loop body. The clone becomes the fast loop. The 237 // Clone the loop body. The clone becomes the fast loop. The
238 // original pre-header will (illegally) have 3 control users 238 // original pre-header will (illegally) have 3 control users
239 // (old & new loops & new if). 239 // (old & new loops & new if).

mercurial