1.1 --- a/src/share/vm/opto/ifnode.cpp Tue Oct 13 20:54:13 2009 -0700 1.2 +++ b/src/share/vm/opto/ifnode.cpp Tue Oct 13 22:32:31 2009 -0700 1.3 @@ -240,13 +240,13 @@ 1.4 // as a single huge transform. 1.5 igvn->register_new_node_with_optimizer( region_c ); 1.6 igvn->register_new_node_with_optimizer( region_x ); 1.7 - phi_x = phase->transform( phi_x ); 1.8 // Prevent the untimely death of phi_x. Currently he has no uses. He is 1.9 // about to get one. If this only use goes away, then phi_x will look dead. 1.10 // However, he will be picking up some more uses down below. 1.11 Node *hook = new (igvn->C, 4) Node(4); 1.12 hook->init_req(0, phi_x); 1.13 hook->init_req(1, phi_c); 1.14 + phi_x = phase->transform( phi_x ); 1.15 1.16 // Make the compare 1.17 Node *cmp_c = phase->makecon(t); 1.18 @@ -322,6 +322,7 @@ 1.19 phi_s = PhiNode::make_blank(region_s,phi); 1.20 phi_s->init_req( 1, phi_c ); 1.21 phi_s->init_req( 2, phi_x ); 1.22 + hook->add_req(phi_s); 1.23 phi_s = phase->transform(phi_s); 1.24 } 1.25 proj_path_data = phi_s; 1.26 @@ -333,6 +334,7 @@ 1.27 phi_f = PhiNode::make_blank(region_f,phi); 1.28 phi_f->init_req( 1, phi_c ); 1.29 phi_f->init_req( 2, phi_x ); 1.30 + hook->add_req(phi_f); 1.31 phi_f = phase->transform(phi_f); 1.32 } 1.33 proj_path_data = phi_f;