comparison src/share/vm/opto/loopUnswitch.cpp @ 3845:c96c3eb1efae

7068051: SIGSEGV in PhaseIdealLoop::build_loop_late_post Summary: Removed predicate cloning from loop peeling optimization and from split fall-in paths. Reviewed-by: never
author kvn
date Fri, 29 Jul 2011 09:16:29 -0700
parents bad7ecd0b6ed
children 5e990493719e
comparison
equal deleted inserted replaced
3844:ce3e1d4dc416 3845:c96c3eb1efae
253 head->set_req(LoopNode::EntryControl, iffast_pred); 253 head->set_req(LoopNode::EntryControl, iffast_pred);
254 set_idom(head, iffast_pred, dom_depth(head)); 254 set_idom(head, iffast_pred, dom_depth(head));
255 _igvn._worklist.push(head); 255 _igvn._worklist.push(head);
256 256
257 // Slow (false) control 257 // Slow (false) control
258 Node* ifslow_pred = move_loop_predicates(entry, ifslow, !counted_loop); 258 Node* ifslow_pred = clone_loop_predicates(entry, ifslow, !counted_loop);
259 LoopNode* slow_head = old_new[head->_idx]->as_Loop(); 259 LoopNode* slow_head = old_new[head->_idx]->as_Loop();
260 _igvn.hash_delete(slow_head); 260 _igvn.hash_delete(slow_head);
261 slow_head->set_req(LoopNode::EntryControl, ifslow_pred); 261 slow_head->set_req(LoopNode::EntryControl, ifslow_pred);
262 set_idom(slow_head, ifslow_pred, dom_depth(slow_head)); 262 set_idom(slow_head, ifslow_pred, dom_depth(slow_head));
263 _igvn._worklist.push(slow_head); 263 _igvn._worklist.push(slow_head);