Mercurial > hg > graal-jvmci-8
diff src/share/vm/jvmci/jvmciCompiler.cpp @ 22770:1fbfcc0334d3
JVMCI PrintCompilation support should reuse CompileBroker logic
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Thu, 14 Jan 2016 11:36:05 -0800 |
parents | 8f5a558875f4 |
children | b41377216cf9 |
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciCompiler.cpp Thu Jan 14 11:32:37 2016 -0800 +++ b/src/share/vm/jvmci/jvmciCompiler.cpp Thu Jan 14 11:36:05 2016 -0800 @@ -129,7 +129,6 @@ JVMCIRuntime::ensure_jvmci_class_loader_is_initialized(); JVMCIJavaClasses::compute_offsets(THREAD); HandleMark hm; - ResourceMark rm; Handle receiver = JVMCIRuntime::get_HotSpotJVMCIRuntime(CHECK_ABORT); JavaValue method_result(T_OBJECT); @@ -161,37 +160,22 @@ if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; } - if (PrintCompilation) { - env->task()->print_compilation(tty, "COMPILE SKIPPED: exception thrown"); - } + env->set_failure("exception throw", false); } else { - oop request = (oop) result.get_jobject(); - if (request != NULL) { - oop failure = CompilationRequestFailure::message(request); - const char* failure_reason = failure != NULL ? java_lang_String::as_utf8_string(failure) : "unknown reason"; - - env->task()->set_failure_reason(failure_reason); - if (PrintCompilation) { - FormatBufferResource msg = CompilationRequestFailure::retry(request) ? - err_msg_res("COMPILE SKIPPED: %s (not_retryable)", failure_reason) : - err_msg_res("COMPILE SKIPPED: %s", failure_reason); - env->task()->print_compilation(tty, msg); - } - if (!CompilationRequestFailure::retry(request)) { - if (entry_bci == InvocationEntryBci) { - method->set_not_compilable(CompLevel_full_optimization); + oop result_object = (oop) result.get_jobject(); + if (result_object != NULL) { + oop failure_message = CompilationRequestResult::failureMessage(result_object); + if (failure_message != NULL) { + const char* failure_reason = failure_message != NULL ? java_lang_String::as_utf8_string(failure_message) : "unknown reason"; + env->set_failure(failure_reason, CompilationRequestResult::retry(result_object)); + } else { + if (env->task()->code() == NULL) { + env->set_failure("no nmethod produced", true); } else { - method->set_not_osr_compilable(CompLevel_full_optimization); + env->task()->set_num_inlined_bytecodes(CompilationRequestResult::inlinedBytecodes(result_object)); + _methodsCompiled++; } } - } else { - if (env->task()->code() == NULL) { - if (PrintCompilation) { - env->task()->print_compilation(tty, "COMPILE SKIPPED: no nmethod produced"); - } - } else { - _methodsCompiled++; - } } } }