< 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 >