src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/loopopts.cpp Mon Jun 9 10:05:24 2014
--- new/src/share/vm/opto/loopopts.cpp Mon Jun 9 10:05:24 2014
*** 1401,1411 ****
--- 1401,1412 ----
// If the Data use is an IF, that means we have an IF outside of the
// loop that is switching on a condition that is set inside of the
// loop. Happens if people set a loop-exit flag; then test the flag
// in the loop to break the loop, then test is again outside of the
// loop to determine which way the loop exited.
if( use->is_If() || use->is_CMove() ) {
+ // Loop predicate If node connectes to Bool node through Opaque1 node.
+ if(use->is_If() || use->is_CMove() || C->is_predicate_opaq(use)) {
// Since this code is highly unlikely, we lazily build the worklist
// of such Nodes to go split.
if( !split_if_set )
split_if_set = new Node_List(area);
split_if_set->push(use);
src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File