diff src/share/vm/opto/ifnode.cpp @ 1017:e715b51789d8

Merge
author cfang
date Fri, 16 Oct 2009 14:08:44 -0700
parents 89e0543e1737 ce590301ae2a
children bea7a22a6f79
line wrap: on
line diff
--- a/src/share/vm/opto/ifnode.cpp	Wed Oct 14 12:40:20 2009 -0700
+++ b/src/share/vm/opto/ifnode.cpp	Fri Oct 16 14:08:44 2009 -0700
@@ -240,13 +240,13 @@
   // as a single huge transform.
   igvn->register_new_node_with_optimizer( region_c );
   igvn->register_new_node_with_optimizer( region_x );
-  phi_x = phase->transform( phi_x );
   // Prevent the untimely death of phi_x.  Currently he has no uses.  He is
   // about to get one.  If this only use goes away, then phi_x will look dead.
   // However, he will be picking up some more uses down below.
   Node *hook = new (igvn->C, 4) Node(4);
   hook->init_req(0, phi_x);
   hook->init_req(1, phi_c);
+  phi_x = phase->transform( phi_x );
 
   // Make the compare
   Node *cmp_c = phase->makecon(t);
@@ -322,6 +322,7 @@
         phi_s = PhiNode::make_blank(region_s,phi);
         phi_s->init_req( 1, phi_c );
         phi_s->init_req( 2, phi_x );
+        hook->add_req(phi_s);
         phi_s = phase->transform(phi_s);
       }
       proj_path_data = phi_s;
@@ -333,6 +334,7 @@
         phi_f = PhiNode::make_blank(region_f,phi);
         phi_f->init_req( 1, phi_c );
         phi_f->init_req( 2, phi_x );
+        hook->add_req(phi_f);
         phi_f = phase->transform(phi_f);
       }
       proj_path_data = phi_f;