--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationTask.java Tue Apr 23 14:09:54 2019 -0400
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationTask.java Tue Apr 23 22:55:09 2019 +0200
@@ -40,7 +40,6 @@
import org.graalvm.compiler.core.CompilationPrinter;
import org.graalvm.compiler.core.CompilationWrapper;
import org.graalvm.compiler.core.common.CompilationIdentifier;
-import org.graalvm.compiler.debug.Assertions;
import org.graalvm.compiler.debug.CounterKey;
import org.graalvm.compiler.debug.DebugCloseable;
import org.graalvm.compiler.debug.DebugContext;
@@ -93,7 +92,6 @@
private final boolean useProfilingInfo;
private final boolean shouldRetainLocalVariables;
- private final OptionValues options;
final class HotSpotCompilationWrapper extends CompilationWrapper<HotSpotCompilationRequestResult> {
private final EventProvider.CompilationEvent compilationEvent;
@@ -150,9 +148,8 @@
if (bailout.isPermanent()) {
// Respect current action if it has been explicitly set.
if (!CompilationBailoutAsFailure.hasBeenSet(values)) {
- // Get more info for permanent bailouts during bootstrap
- // or when assertions are enabled.
- if (Assertions.assertionsEnabled() || compiler.getGraalRuntime().isBootstrapping()) {
+ // Get more info for permanent bailouts during bootstrap.
+ if (compiler.getGraalRuntime().isBootstrapping()) {
return Diagnose;
}
@@ -165,9 +162,8 @@
// Respect current action if it has been explicitly set.
if (!CompilationFailureAction.hasBeenSet(values)) {
- // Automatically exit on failure during bootstrap
- // or when assertions are enabled.
- if (Assertions.assertionsEnabled() || compiler.getGraalRuntime().isBootstrapping()) {
+ // Automatically exit on failure during bootstrap.
+ if (compiler.getGraalRuntime().isBootstrapping()) {
return ExitVM;
}
}
@@ -180,14 +176,14 @@
HotSpotResolvedJavaMethod method = getMethod();
int entryBCI = getEntryBCI();
final boolean isOSR = entryBCI != JVMCICompiler.INVOCATION_ENTRY_BCI;
- CompilationStatistics stats = CompilationStatistics.create(options, method, isOSR);
+ CompilationStatistics stats = CompilationStatistics.create(debug.getOptions(), method, isOSR);
- final CompilationPrinter printer = CompilationPrinter.begin(options, compilationId, method, entryBCI);
+ final CompilationPrinter printer = CompilationPrinter.begin(debug.getOptions(), compilationId, method, entryBCI);
try (DebugContext.Scope s = debug.scope("Compiling", new DebugDumpScope(getIdString(), true))) {
// Begin the compilation event.
compilationEvent.begin();
- result = compiler.compile(method, entryBCI, useProfilingInfo, shouldRetainLocalVariables, compilationId, options, debug);
+ result = compiler.compile(method, entryBCI, useProfilingInfo, shouldRetainLocalVariables, compilationId, debug);
} catch (Throwable e) {
throw debug.handle(e);
} finally {
@@ -211,20 +207,21 @@
}
- public CompilationTask(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, HotSpotCompilationRequest request, boolean useProfilingInfo, boolean installAsDefault,
- OptionValues options) {
- this(jvmciRuntime, compiler, request, useProfilingInfo, false, installAsDefault, options);
+ public CompilationTask(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, HotSpotCompilationRequest request, boolean useProfilingInfo, boolean installAsDefault) {
+ this(jvmciRuntime, compiler, request, useProfilingInfo, false, installAsDefault);
}
public CompilationTask(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, HotSpotCompilationRequest request, boolean useProfilingInfo, boolean shouldRetainLocalVariables,
- boolean installAsDefault, OptionValues options) {
+ boolean installAsDefault) {
this.jvmciRuntime = jvmciRuntime;
this.compiler = compiler;
this.compilationId = new HotSpotCompilationIdentifier(request);
this.useProfilingInfo = useProfilingInfo;
this.shouldRetainLocalVariables = shouldRetainLocalVariables;
this.installAsDefault = installAsDefault;
+ }
+ public OptionValues filterOptions(OptionValues options) {
/*
* Disable inlining if HotSpot has it disabled unless it's been explicitly set in Graal.
*/
@@ -243,7 +240,7 @@
newOptions = new OptionValues(options, m);
}
}
- this.options = newOptions;
+ return newOptions;
}
public HotSpotResolvedJavaMethod getMethod() {
@@ -309,7 +306,8 @@
*/
public static final TimerKey CodeInstallationTime = DebugContext.timer("CodeInstallation");
- public HotSpotCompilationRequestResult runCompilation() {
+ public HotSpotCompilationRequestResult runCompilation(OptionValues initialOptions) {
+ OptionValues options = filterOptions(initialOptions);
SnippetReflectionProvider snippetReflection = compiler.getGraalRuntime().getHostProviders().getSnippetReflection();
try (DebugContext debug = DebugContext.create(options, new GraalDebugHandlersFactory(snippetReflection))) {
return runCompilation(debug);