src/share/vm/opto/ifnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6889300 Cdiff src/share/vm/opto/ifnode.cpp

src/share/vm/opto/ifnode.cpp

Print this page

        

*** 238,254 **** // Register the new RegionNodes but do not transform them. Cannot // transform until the entire Region/Phi conglomerate has been hacked // 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); // Make the compare Node *cmp_c = phase->makecon(t); Node *cmp_x = cmp->clone(); cmp_x->set_req(1,phi_x); --- 238,254 ---- // Register the new RegionNodes but do not transform them. Cannot // transform until the entire Region/Phi conglomerate has been hacked // as a single huge transform. igvn->register_new_node_with_optimizer( region_c ); igvn->register_new_node_with_optimizer( region_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); Node *cmp_x = cmp->clone(); cmp_x->set_req(1,phi_x);
*** 320,329 **** --- 320,330 ---- // Only construct phi_s if needed, otherwise provides // interfering use. 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; proj_path_ctrl = region_s; } else {
*** 331,340 **** --- 332,342 ---- // Only construct phi_f if needed, otherwise provides // interfering use. 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; proj_path_ctrl = region_f; }
src/share/vm/opto/ifnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File