changeset 5887:e8628cb6296b

fix to FullUnroll changes
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 17 Aug 2012 16:11:34 +0200
parents 62f215a79657
children bb373a5fce7e
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java	Fri Aug 17 15:33:25 2012 +0200
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java	Fri Aug 17 16:11:34 2012 +0200
@@ -44,15 +44,16 @@
         if (!loop.isCounted() || !loop.counted().isConstantMaxTripCount()) {
             return false;
         }
-        long exactTrips = loop.counted().constantMaxTripCount();
-        int maxNodes = loop.counted().isConstantExactTripCount() ? GraalOptions.ExactFullUnrollMaxNodes : GraalOptions.FullUnrollMaxNodes;
+        CountedLoopInfo counted = loop.counted();
+        long exactTrips = counted.constantMaxTripCount();
+        int maxNodes = (counted.isExactTripCount() && counted.isConstantExactTripCount()) ? GraalOptions.ExactFullUnrollMaxNodes : GraalOptions.FullUnrollMaxNodes;
         maxNodes = Math.min(maxNodes, GraalOptions.MaximumDesiredSize - loop.loopBegin().graph().getNodeCount());
         int size = Math.max(1, loop.size() - 1 - loop.loopBegin().phis().count());
         return size * exactTrips <= maxNodes;
     }
 
     public static boolean shouldTryUnswitch(@SuppressWarnings("unused") LoopEx loop) {
-        // TODO (gd) maybe there should be a may number of unswitching per loop
+        // TODO (gd) maybe there should be a max number of unswitching per loop
         return true;
     }