src/share/vm/compiler/compileBroker.cpp

Print this page
rev 13113 : 8182651: Add TRACE_ONLY conditional macro to support more fine-grained INCLUDE_TRACE programming
Reviewed-by:

*** 48,60 **** #include "runtime/javaCalls.hpp" #include "runtime/os.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/sweeper.hpp" #include "runtime/timerTrace.hpp" - #include "trace/tracing.hpp" #include "utilities/dtrace.hpp" #include "utilities/events.hpp" #ifdef COMPILER1 #include "c1/c1_Compiler.hpp" #endif #if INCLUDE_JVMCI #include "jvmci/jvmciCompiler.hpp" --- 48,60 ---- #include "runtime/javaCalls.hpp" #include "runtime/os.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/sweeper.hpp" #include "runtime/timerTrace.hpp" #include "utilities/dtrace.hpp" #include "utilities/events.hpp" + #include "utilities/macros.hpp" #ifdef COMPILER1 #include "c1/c1_Compiler.hpp" #endif #if INCLUDE_JVMCI #include "jvmci/jvmciCompiler.hpp"
*** 66,75 **** --- 66,78 ---- #include "opto/c2compiler.hpp" #endif #ifdef SHARK #include "shark/sharkCompiler.hpp" #endif + #if INCLUDE_TRACE + #include "trace/tracing.hpp" + #endif #ifdef DTRACE_ENABLED // Only bother with this argument setup if dtrace is available
*** 1749,1760 **** remaining_log = eol + 1; } } } ! void CompileBroker::post_compile(CompilerThread* thread, CompileTask* task, EventCompilation& event, bool success, ciEnv* ci_env) { ! if (success) { task->mark_success(); if (ci_env != NULL) { task->set_num_inlined_bytecodes(ci_env->num_inlined_bytecodes()); } --- 1752,1765 ---- remaining_log = eol + 1; } } } ! void CompileBroker::post_compile(CompilerThread* thread, ! CompileTask* task, ! bool success, ! ciEnv* ci_env) { if (success) { task->mark_success(); if (ci_env != NULL) { task->set_num_inlined_bytecodes(ci_env->num_inlined_bytecodes()); }
*** 1766,1786 **** } } // simulate crash during compilation assert(task->compile_id() != CICrashAt, "just as planned"); ! if (event.should_commit()) { ! event.set_method(task->method()); ! event.set_compileId(task->compile_id()); ! event.set_compileLevel(task->comp_level()); ! event.set_succeded(task->is_success()); ! event.set_isOsr(task->osr_bci() != CompileBroker::standard_entry_bci); ! event.set_codeSize((task->code() == NULL) ? 0 : task->code()->total_size()); ! event.set_inlinedBytes(task->num_inlined_bytecodes()); ! event.commit(); } } int DirectivesStack::_depth = 0; CompilerDirectives* DirectivesStack::_top = NULL; CompilerDirectives* DirectivesStack::_bottom = NULL; --- 1771,1802 ---- } } // simulate crash during compilation assert(task->compile_id() != CICrashAt, "just as planned"); ! } ! ! #if INCLUDE_TRACE ! static void post_compilation_event(EventCompilation* event, ! CompilerThread* thread, ! CompileTask* task, ! CompilationLog* log, ! bool success, ! ciEnv* ci_env) { ! assert(event != NULL, "invariant"); ! if (event->should_commit()) { ! event->set_method(task->method()); ! event->set_compileId(task->compile_id()); ! event->set_compileLevel(task->comp_level()); ! event->set_succeded(task->is_success()); ! event->set_isOsr(task->osr_bci() != CompileBroker::standard_entry_bci); ! event->set_codeSize((task->code() == NULL) ? 0 : task->code()->total_size()); ! event->set_inlinedBytes(task->num_inlined_bytecodes()); ! event->commit(); } } + #endif // INCLUDE_TRACE int DirectivesStack::_depth = 0; CompilerDirectives* DirectivesStack::_top = NULL; CompilerDirectives* DirectivesStack::_bottom = NULL;
*** 1852,1868 **** #if INCLUDE_JVMCI if (UseJVMCICompiler && comp != NULL && comp->is_jvmci()) { JVMCICompiler* jvmci = (JVMCICompiler*) comp; TraceTime t1("compilation", &time); ! EventCompilation event; JVMCIEnv env(task, system_dictionary_modification_counter); methodHandle method(thread, target_handle); jvmci->compile_method(method, osr_bci, &env); ! ! post_compile(thread, task, event, task->code() != NULL, NULL); failure_reason = env.failure_reason(); if (!env.retryable()) { retry_message = "not retryable"; compilable = ciEnv::MethodCompilable_not_at_tier; --- 1868,1889 ---- #if INCLUDE_JVMCI if (UseJVMCICompiler && comp != NULL && comp->is_jvmci()) { JVMCICompiler* jvmci = (JVMCICompiler*) comp; TraceTime t1("compilation", &time); ! TRACE_ONLY(EventCompilation event;) JVMCIEnv env(task, system_dictionary_modification_counter); methodHandle method(thread, target_handle); jvmci->compile_method(method, osr_bci, &env); ! post_compile(thread, task, task->code() != NULL, NULL); ! TRACE_ONLY(post_compilation_event(&event, ! thread, ! task, ! _compilation_log, ! task->code() != NULL, ! NULL);) failure_reason = env.failure_reason(); if (!env.retryable()) { retry_message = "not retryable"; compilable = ciEnv::MethodCompilable_not_at_tier;
*** 1891,1901 **** ci_env.cache_dtrace_flags(); ciMethod* target = ci_env.get_method_from_handle(target_handle); TraceTime t1("compilation", &time); ! EventCompilation event; if (comp == NULL) { ci_env.record_method_not_compilable("no compiler", !TieredCompilation); } else { if (WhiteBoxAPI && WhiteBox::compilation_locked) { --- 1912,1922 ---- ci_env.cache_dtrace_flags(); ciMethod* target = ci_env.get_method_from_handle(target_handle); TraceTime t1("compilation", &time); ! TRACE_ONLY(EventCompilation event;) if (comp == NULL) { ci_env.record_method_not_compilable("no compiler", !TieredCompilation); } else { if (WhiteBoxAPI && WhiteBox::compilation_locked) {
*** 1921,1931 **** failure_reason = ci_env.failure_reason(); retry_message = ci_env.retry_message(); ci_env.report_failure(failure_reason); } ! post_compile(thread, task, event, !ci_env.failing(), &ci_env); } // Remove the JNI handle block after the ciEnv destructor has run in // the previous block. pop_jni_handle_block(); --- 1942,1958 ---- failure_reason = ci_env.failure_reason(); retry_message = ci_env.retry_message(); ci_env.report_failure(failure_reason); } ! post_compile(thread, task, !ci_env.failing(), &ci_env); ! TRACE_ONLY(post_compilation_event(&event, ! thread, ! task, ! _compilation_log, ! !ci_env.failing(), ! &ci_env);) } // Remove the JNI handle block after the ciEnv destructor has run in // the previous block. pop_jni_handle_block();