# HG changeset patch # User Christian Haeubl # Date 1329271232 28800 # Node ID 6a44a26ed9e691f6625ae7e0e5d5a767057c10ab # Parent 8bc6f680a88d9bbefb6f3e132822649eacd325b9 set default inlining policy to the greedy one diff -r 8bc6f680a88d -r 6a44a26ed9e6 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Tue Feb 14 15:01:36 2012 -0800 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Tue Feb 14 18:00:32 2012 -0800 @@ -45,8 +45,8 @@ public static boolean InlineMonomorphicCalls = true; public static boolean InlinePolymorphicCalls = true; public static boolean InlineMegamorphicCalls = true; - public static int InliningPolicy = 0; - public static int WeightComputationPolicy = 0; + public static int InliningPolicy = 4; + public static int WeightComputationPolicy = 2; public static int MaximumTrivialSize = 6; public static int MaximumInlineLevel = 30; public static int MaximumDesiredSize = 6000; diff -r 8bc6f680a88d -r 6a44a26ed9e6 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Tue Feb 14 15:01:36 2012 -0800 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Tue Feb 14 18:00:32 2012 -0800 @@ -59,6 +59,7 @@ // Metrics private static final DebugMetric metricInliningPerformed = Debug.metric("InliningPerformed"); private static final DebugMetric metricInliningConsidered = Debug.metric("InliningConsidered"); + private static final DebugMetric metricInliningStoppedByMaxDesiredSize = Debug.metric("InliningStoppedByMaxDesiredSize"); public InliningPhase(CiTarget target, GraalRuntime runtime, Collection hints, CiAssumptions assumptions, PhasePlan plan) { this.target = target; @@ -116,6 +117,10 @@ } } } + + if (GraalOptions.Debug && graph.getNodeCount() >= GraalOptions.MaximumDesiredSize) { + metricInliningStoppedByMaxDesiredSize.increment(); + } } private void scanInvokes(Iterable newNodes, int level, StructuredGraph graph) { @@ -277,7 +282,7 @@ return false; } - double inlineBoost = Math.min(GraalOptions.ProbabilityCapForInlining, info.invoke.probability()) + Math.log(Math.max(1, info.invoke.probability() - GraalOptions.ProbabilityCapForInlining + 1)); + double inlineBoost = Math.min(GraalOptions.ProbabilityCapForInlining, info.invoke.probability()) + Math.log10(Math.max(1, info.invoke.probability() - GraalOptions.ProbabilityCapForInlining + 1)); double maxSize = Math.pow(GraalOptions.NestedInliningSizeRatio, info.level) * GraalOptions.MaximumInlineSize; maxSize = maxSize + maxSize * inlineBoost; maxSize = Math.min(GraalOptions.MaximumGreedyInlineSize, Math.max(GraalOptions.MaximumTrivialSize, maxSize));