comparison src/share/vm/opto/loopopts.cpp @ 401:ee8f06bfb27c

6743188: incomplete fix for 6700047 C2 failed in idom_no_update Reviewed-by: rasbold, kvn
author never
date Fri, 03 Oct 2008 13:58:20 -0700
parents 194b8e3a2fc4
children 98cb887364d3
comparison
equal deleted inserted replaced
400:cc80376deb0c 401:ee8f06bfb27c
1900 if (!use->is_Phi()) { 1900 if (!use->is_Phi()) {
1901 use_c = has_ctrl(use) ? get_ctrl(use) : use->in(0); 1901 use_c = has_ctrl(use) ? get_ctrl(use) : use->in(0);
1902 } else { 1902 } else {
1903 // Use in a phi is considered a use in the associated predecessor block 1903 // Use in a phi is considered a use in the associated predecessor block
1904 use_c = use->in(0)->in(j); 1904 use_c = use->in(0)->in(j);
1905 }
1906 if (use_c->is_CountedLoop()) {
1907 use_c = use_c->in(LoopNode::EntryControl);
1908 } 1905 }
1909 set_ctrl(n_clone, use_c); 1906 set_ctrl(n_clone, use_c);
1910 assert(!loop->is_member(get_loop(use_c)), "should be outside loop"); 1907 assert(!loop->is_member(get_loop(use_c)), "should be outside loop");
1911 get_loop(use_c)->_body.push(n_clone); 1908 get_loop(use_c)->_body.push(n_clone);
1912 _igvn.register_new_node_with_optimizer(n_clone); 1909 _igvn.register_new_node_with_optimizer(n_clone);