< prev index next >

src/share/vm/compiler/compileBroker.cpp

Print this page
rev 10588 : [backport] Check and ensure that Shenandoah-enabled compilations succeed
* * *
[backport] Filter out not compilable methods to avoid false assertion
rev 10592 : [backport] Fix Minimal and Zero builds

*** 44,53 **** --- 44,54 ---- #include "runtime/sharedRuntime.hpp" #include "runtime/sweeper.hpp" #include "trace/tracing.hpp" #include "utilities/dtrace.hpp" #include "utilities/events.hpp" + #include "utilities/macros.hpp" #ifdef COMPILER1 #include "c1/c1_Compiler.hpp" #endif #ifdef COMPILER2 #include "opto/c2compiler.hpp"
*** 1985,1994 **** --- 1986,1997 ---- // Cache DTrace flags ci_env.cache_dtrace_flags(); ciMethod* target = ci_env.get_method_from_handle(target_handle); + bool target_compilable = target->can_be_compiled(); + TraceTime t1("compilation", &time); EventCompilation event; AbstractCompiler *comp = compiler(task_level); if (comp == NULL) {
*** 2017,2026 **** --- 2020,2037 ---- FormatBufferResource msg = retry_message != NULL ? err_msg_res("COMPILE SKIPPED: %s (%s)", ci_env.failure_reason(), retry_message) : err_msg_res("COMPILE SKIPPED: %s", ci_env.failure_reason()); task->print_compilation(tty, msg); } + + #if INCLUDE_ALL_GCS + guarantee(!UseShenandoahGC || !ShenandoahCompileCheck || !target_compilable || (compilable != ciEnv::MethodCompilable_not_at_tier), + err_msg("Not compilable on level %d due to: %s", task_level, ci_env.failure_reason())); + guarantee(!UseShenandoahGC || !ShenandoahCompileCheck || !target_compilable ||(compilable != ciEnv::MethodCompilable_never || !target_compilable), + err_msg("Never compilable due to: %s", ci_env.failure_reason())); + #endif + } else { task->mark_success(); task->set_num_inlined_bytecodes(ci_env.num_inlined_bytecodes()); if (_compilation_log != NULL) { nmethod* code = task->code();
< prev index next >