提交 1bd98194 编写于 作者: K kvn

7039586: test/java/util/Collections/Rotate.java failing with hs21-b09

Summary: A predicate should not be moved in partial peel optimization since it will invalidate jvm state of its uncommon trap.
Reviewed-by: never
上级 33c85b23
...@@ -2262,6 +2262,9 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p ...@@ -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 ...@@ -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 ) { ...@@ -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 ) { ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册