# HG changeset patch # User Lukas Stadler # Date 1308650488 -7200 # Node ID 8e9046edb790c68ca93888632da6fe41288cf6d6 # Parent 2e20c39e472f8c53558fc916c93f3a379f1a8d99 fixes on exception profiling diff -r 2e20c39e472f -r 8e9046edb790 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 Jun 21 11:16:21 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Tue Jun 21 12:01:28 2011 +0200 @@ -113,6 +113,8 @@ public static boolean GenLIR = true; public static boolean GenCode = true; public static boolean UseBranchPrediction = true; + public static boolean UseExceptionProbability = true; + public static int MatureInvocationCount = 100; public static boolean UseConstDirectCall = ____; diff -r 2e20c39e472f -r 8e9046edb790 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java Tue Jun 21 11:16:21 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java Tue Jun 21 12:01:28 2011 +0200 @@ -377,8 +377,10 @@ private FixedNode handleException(Value exceptionObject, int bci) { assert bci == Instruction.SYNCHRONIZATION_ENTRY_BCI || bci == bci() : "invalid bci"; - if (exceptionObject == null && method.exceptionProbability(bci) == 0) { - return null; + if (GraalOptions.UseExceptionProbability && method.invocationCount() > GraalOptions.MatureInvocationCount) { + if (exceptionObject == null && method.exceptionProbability(bci) == 0) { + return null; + } } RiExceptionHandler firstHandler = null; diff -r 2e20c39e472f -r 8e9046edb790 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 Jun 21 11:16:21 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Tue Jun 21 12:01:28 2011 +0200 @@ -411,7 +411,7 @@ } else { if (unwindNode != null) { Unwind unwindDuplicate = (Unwind) duplicates.get(unwindNode); - unwindDuplicate.replace(new Deoptimize(DeoptAction.InvalidateRecompile, graph)); + unwindDuplicate.replace(new Deoptimize(DeoptAction.InvalidateRecompile, compilation.graph)); } } diff -r 2e20c39e472f -r 8e9046edb790 graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java --- a/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java Tue Jun 21 11:16:21 2011 +0200 +++ b/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java Tue Jun 21 12:01:28 2011 +0200 @@ -140,7 +140,6 @@ if (!compileMethods) { return; } - ((HotSpotMethodResolvedImpl) method).dumpProfile(); new Sandbox() { @Override