Mercurial > hg > graal-jvmci-8
changeset 5884:347fad1ea1d0
increase full unrolling budget for fixed-size loops
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 17 Aug 2012 14:12:00 +0200 |
parents | 3bf1460f35e1 |
children | d172b68e7762 |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java |
diffstat | 2 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Fri Aug 17 14:11:18 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Fri Aug 17 14:12:00 2012 +0200 @@ -108,6 +108,7 @@ public static boolean FullUnroll = true; public static boolean LoopUnswitch = ____; public static int FullUnrollMaxNodes = 150; + public static int ExactFullUnrollMaxNodes = 600; public static float MinimumPeelProbability = 0.35f; public static int LoopUnswitchMaxIncrease = 50; public static int LoopUnswitchUncertaintyBoost = 5;
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java Fri Aug 17 14:11:18 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopPolicies.java Fri Aug 17 14:12:00 2012 +0200 @@ -45,7 +45,8 @@ return false; } long exactTrips = loop.counted().constantMaxTripCount(); - int maxNodes = Math.min(GraalOptions.FullUnrollMaxNodes, GraalOptions.MaximumDesiredSize - loop.loopBegin().graph().getNodeCount()); + int maxNodes = loop.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; }