src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java
equal
deleted
inserted
replaced
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 |