src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java
changeset 48861 47f19ff9903c
parent 47216 71c04702a3d5
child 50330 2cbc42a5764b
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    29 import java.util.ArrayList;
    29 import java.util.ArrayList;
    30 import java.util.Iterator;
    30 import java.util.Iterator;
    31 import java.util.List;
    31 import java.util.List;
    32 
    32 
    33 import org.graalvm.compiler.core.common.RetryableBailoutException;
    33 import org.graalvm.compiler.core.common.RetryableBailoutException;
    34 import org.graalvm.compiler.core.common.calc.Condition;
    34 import org.graalvm.compiler.core.common.calc.CanonicalCondition;
    35 import org.graalvm.compiler.debug.DebugContext;
    35 import org.graalvm.compiler.debug.DebugContext;
    36 import org.graalvm.compiler.debug.GraalError;
    36 import org.graalvm.compiler.debug.GraalError;
    37 import org.graalvm.compiler.graph.Graph.Mark;
    37 import org.graalvm.compiler.graph.Graph.Mark;
    38 import org.graalvm.compiler.graph.Node;
    38 import org.graalvm.compiler.graph.Node;
    39 import org.graalvm.compiler.graph.Position;
    39 import org.graalvm.compiler.graph.Position;
   449         LoopBeginNode loopBegin = loop.loopBegin();
   449         LoopBeginNode loopBegin = loop.loopBegin();
   450         LogicNode condition = loop.counted().getLimitTest().condition();
   450         LogicNode condition = loop.counted().getLimitTest().condition();
   451         if (!(condition instanceof CompareNode)) {
   451         if (!(condition instanceof CompareNode)) {
   452             return false;
   452             return false;
   453         }
   453         }
   454         if (((CompareNode) condition).condition() == Condition.EQ || ((CompareNode) condition).condition() == Condition.NE) {
   454         if (((CompareNode) condition).condition() == CanonicalCondition.EQ) {
   455             condition.getDebug().log(DebugContext.VERBOSE_LEVEL, "isUnrollableLoop %s condition unsupported %s ", loopBegin, ((CompareNode) condition).condition());
   455             condition.getDebug().log(DebugContext.VERBOSE_LEVEL, "isUnrollableLoop %s condition unsupported %s ", loopBegin, ((CompareNode) condition).condition());
   456             return false;
   456             return false;
   457         }
   457         }
   458         if (loopBegin.isMainLoop() || loopBegin.isSimpleLoop()) {
   458         if (loopBegin.isMainLoop() || loopBegin.isSimpleLoop()) {
   459             // Flow-less loops to partial unroll for now. 3 blocks corresponds to an if that either
   459             // Flow-less loops to partial unroll for now. 3 blocks corresponds to an if that either