Mercurial > hg > truffle
changeset 3057:8e9046edb790
fixes on exception profiling
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 21 Jun 2011 12:01:28 +0200 |
parents | 2e20c39e472f |
children | 750bec011943 |
files | graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java |
diffstat | 4 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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 = ____;
--- 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;
--- 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)); } }
--- 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