8225019: Update JVMCI

Reviewed-by: never, dlong
This commit is contained in:
Vladimir Kozlov 2019-06-04 12:44:53 -07:00
parent 766a7dd9f7
commit 7356905a83
83 changed files with 609 additions and 210 deletions

View file

@ -938,8 +938,6 @@ void JVMCIRuntime::describe_pending_hotspot_exception(JavaThread* THREAD, bool c
if (exception->is_a(SystemDictionary::ThreadDeath_klass())) {
// Don't print anything if we are being killed.
} else {
java_lang_Throwable::print(exception(), tty);
tty->cr();
java_lang_Throwable::print_stack_trace(exception, tty);
// Clear and ignore any exceptions raised during printing
@ -1397,11 +1395,18 @@ void JVMCIRuntime::compile_method(JVMCIEnv* JVMCIENV, JVMCICompiler* compiler, c
assert(false, "JVMCICompiler.compileMethod should always return non-null");
}
} else {
// An uncaught exception was thrown during compilation. Generally these
// should be handled by the Java code in some useful way but if they leak
// through to here report them instead of dying or silently ignoring them.
JVMCIENV->describe_pending_exception(true);
compile_state->set_failure(false, "unexpected exception thrown");
// An uncaught exception here implies failure during compiler initialization.
// The only sensible thing to do here is to exit the VM.
// Only report initialization failure once
static volatile int report_init_failure = 0;
if (!report_init_failure && Atomic::cmpxchg(1, &report_init_failure, 0) == 0) {
tty->print_cr("Exception during JVMCI compiler initialization:");
JVMCIENV->describe_pending_exception(true);
}
JVMCIENV->clear_pending_exception();
before_exit((JavaThread*) THREAD);
vm_exit(-1);
}
if (compiler->is_bootstrapping()) {
compiler->set_bootstrap_compilation_request_handled();