Mercurial > hg > graal-compiler
changeset 18204:a1873eefea65
Truffle: refactor TraceTrufflePerformanceWarnings into separate class.
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Mon Oct 27 17:07:51 2014 +0100 @@ -61,6 +61,7 @@ TraceCompilationListener.install(this); TraceCompilationPolymorphismListener.install(this); TraceCompilationCallTreeListener.install(this); + TracePerformanceWarningsListener.install(this); TraceInliningListener.install(this); PrintCallTargetProfiling.install(this); }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Mon Oct 27 17:07:51 2014 +0100 @@ -22,7 +22,6 @@ */ package com.oracle.graal.truffle; -import static com.oracle.graal.truffle.OptimizedCallTargetLog.*; import static com.oracle.graal.truffle.TruffleCompilerOptions.*; import java.io.*; @@ -34,6 +33,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.compiler.common.*; import com.oracle.graal.debug.*; +import com.oracle.graal.truffle.debug.*; import com.oracle.truffle.api.*; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.frame.*; @@ -451,7 +451,7 @@ public Map<String, Object> getDebugProperties() { Map<String, Object> properties = new LinkedHashMap<>(); - addASTSizeProperty(this, properties); + AbstractDebugCompilationListener.addASTSizeProperty(this, properties); properties.putAll(getCompilationProfile().getDebugProperties()); return properties; }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTargetLog.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTargetLog.java Mon Oct 27 17:07:51 2014 +0100 @@ -59,10 +59,6 @@ } - public static void logPerformanceWarning(String details, Map<String, Object> properties) { - log(0, "perf warn", details, properties); - } - static void log(int indent, String msg, String details, Map<String, Object> properties) { StringBuilder sb = new StringBuilder(); sb.append(String.format("[truffle] %-16s ", msg));
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Mon Oct 27 17:07:51 2014 +0100 @@ -23,7 +23,6 @@ package com.oracle.graal.truffle; import static com.oracle.graal.compiler.common.GraalOptions.*; -import static com.oracle.graal.truffle.OptimizedCallTargetLog.*; import static com.oracle.graal.truffle.TruffleCompilerOptions.*; import java.util.*; @@ -51,6 +50,7 @@ import com.oracle.graal.phases.common.inlining.info.*; import com.oracle.graal.phases.tiers.*; import com.oracle.graal.phases.util.*; +import com.oracle.graal.truffle.debug.*; import com.oracle.graal.truffle.nodes.*; import com.oracle.graal.truffle.nodes.asserts.*; import com.oracle.graal.truffle.nodes.frame.*; @@ -373,7 +373,7 @@ if (TruffleCompilerOptions.TraceTrufflePerformanceWarnings.getValue()) { Map<String, Object> properties = new LinkedHashMap<>(); properties.put("callNode", callNode); - logPerformanceWarning("A direct call within the Truffle AST is not reachable anymore. Call node could not be inlined.", properties); + TracePerformanceWarningsListener.logPerformanceWarning("A direct call within the Truffle AST is not reachable anymore. Call node could not be inlined.", properties); } } @@ -382,7 +382,7 @@ Map<String, Object> properties = new LinkedHashMap<>(); properties.put("originalTarget", decision.getTarget()); properties.put("callNode", callNode); - logPerformanceWarning(String.format("CallTarget changed during compilation. Call node could not be inlined."), properties); + TracePerformanceWarningsListener.logPerformanceWarning(String.format("CallTarget changed during compilation. Call node could not be inlined."), properties); } decision = null; }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Mon Oct 27 17:07:51 2014 +0100 @@ -44,6 +44,7 @@ import com.oracle.graal.phases.common.inlining.*; import com.oracle.graal.phases.tiers.*; import com.oracle.graal.phases.util.*; +import com.oracle.graal.truffle.debug.*; import com.oracle.graal.truffle.phases.*; import com.oracle.graal.virtual.phases.ea.*; import com.oracle.truffle.api.*; @@ -209,7 +210,7 @@ Map<String, Object> map = new LinkedHashMap<>(); map.put("nodeCount", graph.getNodeCount()); map.put("method", method.toString()); - OptimizedCallTargetLog.logPerformanceWarning(String.format("Method on fast path contains more than %d graal nodes.", warnNodeCount), map); + TracePerformanceWarningsListener.logPerformanceWarning(String.format("Method on fast path contains more than %d graal nodes.", warnNodeCount), map); } }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Mon Oct 27 17:07:51 2014 +0100 @@ -37,7 +37,7 @@ public void notifyShutdown(TruffleRuntime runtime) { } - protected static void log(int indent, String msg, String details, Map<String, Object> properties) { + public static void log(int indent, String msg, String details, Map<String, Object> properties) { StringBuilder sb = new StringBuilder(); sb.append(String.format("[truffle] %-16s ", msg)); for (int i = 0; i < indent; i++) { @@ -69,7 +69,7 @@ OUT.println(sb.toString()); } - protected static void addASTSizeProperty(OptimizedCallTarget target, Map<String, Object> properties) { + public static void addASTSizeProperty(OptimizedCallTarget target, Map<String, Object> properties) { int nodeCount = OptimizedCallUtils.countNonTrivialNodes(target, false); int deepNodeCount = nodeCount; TruffleInlining inlining = target.getInlining();
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/TraceCompilationListener.java Mon Oct 27 15:40:31 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/TraceCompilationListener.java Mon Oct 27 17:07:51 2014 +0100 @@ -85,7 +85,7 @@ int dispatchedCalls = calls - inlinedCalls; Map<String, Object> properties = new LinkedHashMap<>(); - OptimizedCallTargetLog.addASTSizeProperty(target, properties); + addASTSizeProperty(target, properties); properties.put("Time", String.format("%5.0f(%4.0f+%-4.0f)ms", // (timeCompilationFinished - compilation.timeCompilationStarted) / 1e6, // (compilation.timePartialEvaluationFinished - compilation.timeCompilationStarted) / 1e6, //
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/TracePerformanceWarningsListener.java Mon Oct 27 17:07:51 2014 +0100 @@ -0,0 +1,33 @@ +package com.oracle.graal.truffle.debug; + +import static com.oracle.graal.truffle.TruffleCompilerOptions.*; + +import java.util.*; + +import com.oracle.graal.nodes.*; +import com.oracle.graal.truffle.*; + +public class TracePerformanceWarningsListener extends AbstractDebugCompilationListener { + + private TracePerformanceWarningsListener() { + } + + public static void install(GraalTruffleRuntime runtime) { + if (isEnabled()) { + runtime.addCompilationListener(new TracePerformanceWarningsListener()); + } + } + + @Override + public void notifyCompilationTruffleTierFinished(OptimizedCallTarget target, StructuredGraph graph) { + } + + public static boolean isEnabled() { + return TraceTrufflePerformanceWarnings.getValue(); + } + + public static void logPerformanceWarning(String details, Map<String, Object> properties) { + log(0, "perf warn", details, properties); + } + +}