src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 52910 583fd71c47d6
child 58679 9c3209ff7550
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java	Thu Oct 17 20:27:44 2019 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java	Thu Oct 17 20:53:35 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -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);
+            }
         }
     }