Mercurial > hg > graal-jvmci-8
changeset 3281:273b56978029
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
author | kvn |
---|---|
date | Tue, 26 Apr 2011 12:14:22 -0700 |
parents | 548597e74aa4 |
children | 149bb459be66 |
files | src/share/vm/opto/loopopts.cpp |
diffstat | 1 files changed, 3 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/opto/loopopts.cpp Mon Apr 25 16:25:58 2011 -0700 +++ b/src/share/vm/opto/loopopts.cpp Tue Apr 26 12:14:22 2011 -0700 @@ -2262,6 +2262,9 @@ // stmt1 // | // v +// loop predicate +// | +// v // stmt2 clone // | // v @@ -2272,9 +2275,6 @@ // : false true // : | | // : | v -// : | loop predicate -// : | | -// : | v // : | newloop<-----+ // : | | | // : | stmt3 clone | @@ -2330,7 +2330,6 @@ } } - Node* entry = head->in(LoopNode::EntryControl); int dd = dom_depth(head); // Step 1: find cut point @@ -2627,8 +2626,6 @@ // Backedge of the surviving new_head (the clone) is original last_peel _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); _igvn._worklist.push(new_head_clone);