Mercurial > hg > graal-compiler
changeset 17153:646ddd52d79a
only generate extra debug info if on HotSpot *and* compiling for HotSpot execution
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 18 Sep 2014 23:19:03 +0200 |
parents | d48738c27e7d |
children | 7716c6993546 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java |
diffstat | 3 files changed, 27 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Thu Sep 18 19:02:02 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Thu Sep 18 23:19:03 2014 +0200 @@ -29,6 +29,7 @@ import static com.oracle.graal.compiler.common.UnsafeAccess.*; import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; import static com.oracle.graal.hotspot.InitTimer.*; +import static com.oracle.graal.hotspot.meta.HotSpotSuitesProvider.*; import static com.oracle.graal.nodes.StructuredGraph.*; import static com.oracle.graal.phases.common.inlining.InliningUtil.*; @@ -129,7 +130,8 @@ } protected PhaseSuite<HighTierContext> getGraphBuilderSuite(HotSpotProviders providers) { - PhaseSuite<HighTierContext> suite = providers.getSuites().getDefaultGraphBuilderSuite(); + PhaseSuite<HighTierContext> suite = withSimpleDebugInfoIfRequested(providers.getSuites().getDefaultGraphBuilderSuite()); + boolean osrCompilation = entryBCI != StructuredGraph.INVOCATION_ENTRY_BCI; if (osrCompilation) { suite = suite.copy();
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java Thu Sep 18 19:02:02 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java Thu Sep 18 23:19:03 2014 +0200 @@ -25,6 +25,7 @@ import static com.oracle.graal.compiler.common.GraalOptions.*; import com.oracle.graal.hotspot.*; +import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.hotspot.phases.*; import com.oracle.graal.java.*; import com.oracle.graal.java.GraphBuilderConfiguration.*; @@ -77,10 +78,28 @@ protected PhaseSuite<HighTierContext> createGraphBuilderSuite() { PhaseSuite<HighTierContext> suite = new PhaseSuite<>(); GraphBuilderConfiguration config = GraphBuilderConfiguration.getDefault(); - if (runtime.getCompilerToVM().shouldDebugNonSafepoints()) { - config = config.withDebugInfoMode(DebugInfoMode.Simple); - } suite.appendPhase(new GraphBuilderPhase(config)); return suite; } + + /** + * Modifies the {@link GraphBuilderConfiguration} to build extra + * {@linkplain DebugInfoMode#Simple debug info} if the VM + * {@linkplain CompilerToVM#shouldDebugNonSafepoints() requests} it. + * + * @param gbs the current graph builder suite + * @return a possibly modified graph builder suite + */ + public static PhaseSuite<HighTierContext> withSimpleDebugInfoIfRequested(PhaseSuite<HighTierContext> gbs) { + if (HotSpotGraalRuntime.runtime().getCompilerToVM().shouldDebugNonSafepoints()) { + PhaseSuite<HighTierContext> newGbs = gbs.copy(); + GraphBuilderPhase graphBuilderPhase = (GraphBuilderPhase) newGbs.findPhase(GraphBuilderPhase.class).previous(); + GraphBuilderConfiguration graphBuilderConfig = graphBuilderPhase.getGraphBuilderConfig(); + GraphBuilderPhase newGraphBuilderPhase = new GraphBuilderPhase(graphBuilderConfig.withDebugInfoMode(DebugInfoMode.Simple)); + newGbs.findPhase(GraphBuilderPhase.class).set(newGraphBuilderPhase); + return newGbs; + } + return gbs; + } + }
--- a/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Thu Sep 18 19:02:02 2014 +0200 +++ b/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Thu Sep 18 23:19:03 2014 +0200 @@ -25,6 +25,7 @@ import static com.oracle.graal.api.code.CodeUtil.*; import static com.oracle.graal.compiler.GraalCompiler.*; import static com.oracle.graal.graph.util.CollectionsAccess.*; +import static com.oracle.graal.hotspot.meta.HotSpotSuitesProvider.*; import static com.oracle.graal.truffle.TruffleCompilerOptions.*; import java.util.*; @@ -44,7 +45,6 @@ import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.java.*; -import com.oracle.graal.java.GraphBuilderConfiguration.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.spi.*; @@ -262,15 +262,7 @@ private static PhaseSuite<HighTierContext> getGraphBuilderSuite(SuitesProvider suitesProvider) { PhaseSuite<HighTierContext> graphBuilderSuite = suitesProvider.getDefaultGraphBuilderSuite(); - if (HotSpotGraalRuntime.runtime().getCompilerToVM().shouldDebugNonSafepoints()) { - // need to tweak the graph builder config - graphBuilderSuite = graphBuilderSuite.copy(); - GraphBuilderPhase graphBuilderPhase = (GraphBuilderPhase) graphBuilderSuite.findPhase(GraphBuilderPhase.class).previous(); - GraphBuilderConfiguration graphBuilderConfig = graphBuilderPhase.getGraphBuilderConfig(); - GraphBuilderPhase newGraphBuilderPhase = new GraphBuilderPhase(graphBuilderConfig.withDebugInfoMode(DebugInfoMode.Simple)); - graphBuilderSuite.findPhase(GraphBuilderPhase.class).set(newGraphBuilderPhase); - } - return graphBuilderSuite; + return withSimpleDebugInfoIfRequested(graphBuilderSuite); } private static void removeInliningPhase(Suites suites) {