# HG changeset patch # User Christian Wimmer # Date 1436375557 25200 # Node ID dab8fbc8ba430ec6e9d4060660ae1c1071516a40 # Parent 652d8bc53ef9eaa2fc570f3e9a3347d76012ef7c Expose graph builder configuration and some other details of Truffle compiler diff -r 652d8bc53ef9 -r dab8fbc8ba43 graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java --- a/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Wed Jul 08 10:11:49 2015 -0700 +++ b/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Wed Jul 08 10:12:37 2015 -0700 @@ -121,6 +121,14 @@ } @Override + public TruffleCompiler getTruffleCompiler() { + if (truffleCompiler == null) { + truffleCompiler = DefaultTruffleCompiler.create(); + } + return truffleCompiler; + } + + @Override public RootCallTarget createCallTarget(RootNode rootNode) { return createCallTargetImpl(null, rootNode); } @@ -213,9 +221,9 @@ @Override public void compile(OptimizedCallTarget optimizedCallTarget, boolean mayBeAsynchronous) { - if (truffleCompiler == null) { - truffleCompiler = DefaultTruffleCompiler.create(); - } + /* Ensure compiler is created. */ + getTruffleCompiler(); + Runnable r = new Runnable() { @Override public void run() { diff -r 652d8bc53ef9 -r dab8fbc8ba43 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Wed Jul 08 10:11:49 2015 -0700 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Wed Jul 08 10:12:37 2015 -0700 @@ -66,6 +66,8 @@ Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown)); } + public abstract TruffleCompiler getTruffleCompiler(); + private static T loadPrioritizedServiceProvider(Class clazz) { Iterable providers = Services.load(clazz); T bestFactory = null; diff -r 652d8bc53ef9 -r dab8fbc8ba43 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Wed Jul 08 10:11:49 2015 -0700 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Wed Jul 08 10:12:37 2015 -0700 @@ -97,6 +97,22 @@ } } + public Providers getProviders() { + return providers; + } + + public SnippetReflectionProvider getSnippetReflection() { + return snippetReflection; + } + + public ResolvedJavaMethod[] getCompilationRootMethods() { + return new ResolvedJavaMethod[]{callRootMethod, callInlinedMethod}; + } + + public ResolvedJavaMethod[] getNeverInlineMethods() { + return new ResolvedJavaMethod[]{callSiteProxyMethod, callDirectMethod}; + } + public StructuredGraph createGraph(final OptimizedCallTarget callTarget, AllowAssumptions allowAssumptions) { try (Scope c = Debug.scope("TruffleTree")) { Debug.dump(callTarget, "truffle tree"); diff -r 652d8bc53ef9 -r dab8fbc8ba43 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompiler.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompiler.java Wed Jul 08 10:11:49 2015 -0700 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompiler.java Wed Jul 08 10:12:37 2015 -0700 @@ -99,6 +99,10 @@ } } + public GraphBuilderConfiguration getGraphBuilderConfiguration() { + return config; + } + protected abstract PartialEvaluator createPartialEvaluator(); public static ResolvedJavaType[] getSkippedExceptionTypes(MetaAccessProvider metaAccess) {