hotspot/src/share/vm/opto/loopopts.cpp
changeset 24939 6c994cc056ef
parent 24923 9631f7d691dc
child 24954 9bd47e3d7c69
--- a/hotspot/src/share/vm/opto/loopopts.cpp	Mon Jun 09 11:49:02 2014 +0000
+++ b/hotspot/src/share/vm/opto/loopopts.cpp	Mon Jun 09 15:42:31 2014 -0700
@@ -1403,7 +1403,8 @@
         // 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 connects 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 )