src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java
changeset 55509 d58442b8abc1
parent 52910 583fd71c47d6
child 58299 6df94ce3ab2f
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java	Thu Jun 27 03:10:52 2019 +0200
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java	Thu Jun 27 03:33:44 2019 +0200
@@ -24,14 +24,15 @@
 
 package org.graalvm.compiler.loop.phases;
 
+import org.graalvm.compiler.core.common.GraalOptions;
 import org.graalvm.compiler.debug.CounterKey;
 import org.graalvm.compiler.debug.DebugContext;
 import org.graalvm.compiler.loop.LoopEx;
 import org.graalvm.compiler.loop.LoopPolicies;
 import org.graalvm.compiler.loop.LoopsData;
 import org.graalvm.compiler.nodes.StructuredGraph;
+import org.graalvm.compiler.nodes.spi.CoreProviders;
 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
-import org.graalvm.compiler.phases.tiers.PhaseContext;
 
 public class LoopFullUnrollPhase extends LoopPhase<LoopPolicies> {
 
@@ -44,26 +45,28 @@
     }
 
     @Override
-    protected void run(StructuredGraph graph, PhaseContext context) {
-        DebugContext debug = graph.getDebug();
-        if (graph.hasLoops()) {
-            boolean peeled;
-            do {
-                peeled = false;
-                final LoopsData dataCounted = new LoopsData(graph);
-                dataCounted.detectedCountedLoops();
-                for (LoopEx loop : dataCounted.countedLoops()) {
-                    if (getPolicies().shouldFullUnroll(loop)) {
-                        debug.log("FullUnroll %s", loop);
-                        LoopTransformations.fullUnroll(loop, context, canonicalizer);
-                        FULLY_UNROLLED_LOOPS.increment(debug);
-                        debug.dump(DebugContext.DETAILED_LEVEL, graph, "FullUnroll %s", loop);
-                        peeled = true;
-                        break;
+    protected void run(StructuredGraph graph, CoreProviders context) {
+        if (GraalOptions.FullUnroll.getValue(graph.getOptions())) {
+            DebugContext debug = graph.getDebug();
+            if (graph.hasLoops()) {
+                boolean peeled;
+                do {
+                    peeled = false;
+                    final LoopsData dataCounted = new LoopsData(graph);
+                    dataCounted.detectedCountedLoops();
+                    for (LoopEx loop : dataCounted.countedLoops()) {
+                        if (getPolicies().shouldFullUnroll(loop)) {
+                            debug.log("FullUnroll %s", loop);
+                            LoopTransformations.fullUnroll(loop, context, canonicalizer);
+                            FULLY_UNROLLED_LOOPS.increment(debug);
+                            debug.dump(DebugContext.DETAILED_LEVEL, graph, "FullUnroll %s", loop);
+                            peeled = true;
+                            break;
+                        }
                     }
-                }
-                dataCounted.deleteUnusedNodes();
-            } while (peeled);
+                    dataCounted.deleteUnusedNodes();
+                } while (peeled);
+            }
         }
     }