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); |