hotspot/src/share/vm/opto/loopUnswitch.cpp
changeset 13895 f6dfe4123709
parent 12958 009b6c9586d8
child 13963 e5b53c306fb5
equal deleted inserted replaced
13894:068a8efe7203 13895:f6dfe4123709
   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).