Mercurial > hg > graal-jvmci-8
changeset 16106:5d84706642ce
ensure a DebugEnvironment is initialized for native compiler threads
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 13 Jun 2014 18:41:45 +0200 |
parents | e54507c88a93 |
children | c7db9dc73694 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java graal/com.oracle.graal.printer/src/com/oracle/graal/printer/DebugEnvironment.java |
diffstat | 2 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Fri Jun 13 17:41:42 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Fri Jun 13 18:41:45 2014 +0200 @@ -63,6 +63,7 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.tiers.*; +import com.oracle.graal.printer.*; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -490,21 +491,31 @@ } /** - * Entry point for the VM to schedule a compilation for a metaspace Method. + * Schedules compilation of a metaspace Method. * * Called from the VM. */ @SuppressWarnings("unused") private static void compileMetaspaceMethod(long metaspaceMethod, final int entryBCI, long ctask, final boolean blocking) { - final HotSpotResolvedJavaMethod method = HotSpotResolvedJavaMethod.fromMetaspace(metaspaceMethod); if (ctask != 0L) { + // Ensure a Graal runtime is initialized prior to Debug being initialized as the former + // may include processing command line options used by the latter. + Graal.getRuntime(); + + // Ensure a debug configuration for this thread is initialized + if (Debug.isEnabled() && DebugScope.getConfig() == null) { + DebugEnvironment.initialize(System.out); + } + // This is on a VM CompilerThread - no user frames exist + final HotSpotResolvedJavaMethod method = HotSpotResolvedJavaMethod.fromMetaspace(metaspaceMethod); compileMethod(method, entryBCI, ctask, false); } else { // We have to use a privileged action here because compilations are // enqueued from user code which very likely contains unprivileged frames. AccessController.doPrivileged(new PrivilegedAction<Void>() { public Void run() { + final HotSpotResolvedJavaMethod method = HotSpotResolvedJavaMethod.fromMetaspace(metaspaceMethod); compileMethod(method, entryBCI, 0L, blocking); return null; }
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/DebugEnvironment.java Fri Jun 13 17:41:42 2014 +0200 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/DebugEnvironment.java Fri Jun 13 18:41:45 2014 +0200 @@ -37,7 +37,7 @@ public static GraalDebugConfig initialize(PrintStream log) { // Ensure Graal runtime is initialized prior to Debug being initialized as the former - // included processing command line options used by the latter. + // may include processing command line options used by the latter. Graal.getRuntime(); if (!Debug.isEnabled()) {