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