< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationTask.java

Print this page

        

*** 24,34 **** package org.graalvm.compiler.hotspot; import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.Diagnose; import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.ExitVM; ! import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationBailoutAction; import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationFailureAction; import static org.graalvm.compiler.core.phases.HighTier.Options.Inline; import static org.graalvm.compiler.java.BytecodeParserOptions.InlineDuringParsing; import java.io.PrintStream; --- 24,34 ---- package org.graalvm.compiler.hotspot; import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.Diagnose; import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.ExitVM; ! import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationBailoutAsFailure; import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationFailureAction; import static org.graalvm.compiler.core.phases.HighTier.Options.Inline; import static org.graalvm.compiler.java.BytecodeParserOptions.InlineDuringParsing; import java.io.PrintStream;
*** 45,55 **** import org.graalvm.compiler.debug.DebugCloseable; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.DebugDumpScope; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.debug.TimerKey; - import org.graalvm.compiler.options.EnumOptionKey; import org.graalvm.compiler.options.OptionKey; import org.graalvm.compiler.options.OptionValues; import org.graalvm.compiler.printer.GraalDebugHandlersFactory; import jdk.vm.ci.code.BailoutException; --- 45,54 ----
*** 143,171 **** */ return HotSpotCompilationRequestResult.failure(t.toString(), false); } @Override ! protected ExceptionAction lookupAction(OptionValues values, EnumOptionKey<ExceptionAction> actionKey, Throwable cause) { ! // Respect current action if it has been explicitly set. ! if (!actionKey.hasBeenSet(values)) { ! if (actionKey == CompilationFailureAction) { ! // Automatically exit on non-bailout during bootstrap ! // or when assertions are enabled. ! if (Assertions.assertionsEnabled() || compiler.getGraalRuntime().isBootstrapping()) { ! return ExitVM; ! } ! } else if (actionKey == CompilationBailoutAction && ((BailoutException) cause).isPermanent()) { ! // Get more info for permanent bailouts during bootstrap ! // or when assertions are enabled. ! assert CompilationBailoutAction.getDefaultValue() == ExceptionAction.Silent; ! if (Assertions.assertionsEnabled() || compiler.getGraalRuntime().isBootstrapping()) { ! return Diagnose; } } } ! return super.lookupAction(values, actionKey, cause); } @SuppressWarnings("try") @Override protected HotSpotCompilationRequestResult performCompilation(DebugContext debug) { --- 142,179 ---- */ return HotSpotCompilationRequestResult.failure(t.toString(), false); } @Override ! protected ExceptionAction lookupAction(OptionValues values, Throwable cause) { ! if (cause instanceof BailoutException) { ! BailoutException bailout = (BailoutException) cause; ! 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()) { ! return Diagnose; ! } ! } } + if (!CompilationBailoutAsFailure.getValue(values)) { + return super.lookupAction(values, cause); + } + } + + // 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()) { + return ExitVM; + } } ! return super.lookupAction(values, cause); } @SuppressWarnings("try") @Override protected HotSpotCompilationRequestResult performCompilation(DebugContext debug) {
< prev index next >