7039586: test/java/util/Collections/Rotate.java failing with hs21-b09
A predicate should not be moved in partial peel optimization since it will invalidate jvm state of its uncommon trap. Reviewed-by: never
This commit is contained in:
parent
16d6414619
commit
6c8fc4b347
@ -2262,6 +2262,9 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p
|
|||||||
// stmt1
|
// stmt1
|
||||||
// |
|
// |
|
||||||
// v
|
// v
|
||||||
|
// loop predicate
|
||||||
|
// |
|
||||||
|
// v
|
||||||
// stmt2 clone
|
// stmt2 clone
|
||||||
// |
|
// |
|
||||||
// v
|
// v
|
||||||
@ -2272,9 +2275,6 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p
|
|||||||
// : false true
|
// : false true
|
||||||
// : | |
|
// : | |
|
||||||
// : | v
|
// : | v
|
||||||
// : | loop predicate
|
|
||||||
// : | |
|
|
||||||
// : | v
|
|
||||||
// : | newloop<-----+
|
// : | newloop<-----+
|
||||||
// : | | |
|
// : | | |
|
||||||
// : | stmt3 clone |
|
// : | stmt3 clone |
|
||||||
@ -2330,7 +2330,6 @@ bool PhaseIdealLoop::partial_peel( IdealLoopTree *loop, Node_List &old_new ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Node* entry = head->in(LoopNode::EntryControl);
|
|
||||||
int dd = dom_depth(head);
|
int dd = dom_depth(head);
|
||||||
|
|
||||||
// Step 1: find cut point
|
// Step 1: find cut point
|
||||||
@ -2627,8 +2626,6 @@ bool PhaseIdealLoop::partial_peel( IdealLoopTree *loop, Node_List &old_new ) {
|
|||||||
|
|
||||||
// Backedge of the surviving new_head (the clone) is original last_peel
|
// Backedge of the surviving new_head (the clone) is original last_peel
|
||||||
_igvn.hash_delete(new_head_clone);
|
_igvn.hash_delete(new_head_clone);
|
||||||
Node* new_entry = move_loop_predicates(entry, new_head_clone->in(LoopNode::EntryControl));
|
|
||||||
new_head_clone->set_req(LoopNode::EntryControl, new_entry);
|
|
||||||
new_head_clone->set_req(LoopNode::LoopBackControl, last_peel);
|
new_head_clone->set_req(LoopNode::LoopBackControl, last_peel);
|
||||||
_igvn._worklist.push(new_head_clone);
|
_igvn._worklist.push(new_head_clone);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user