< prev index next >

src/share/vm/compiler/compileBroker.cpp

Print this page

        

*** 28,37 **** --- 28,38 ---- #include "code/codeCache.hpp" #include "compiler/compileBroker.hpp" #include "compiler/compileLog.hpp" #include "compiler/compilerOracle.hpp" #include "interpreter/linkResolver.hpp" + #include "jfr/jfrEvents.hpp" #include "memory/allocation.inline.hpp" #include "oops/methodData.hpp" #include "oops/method.hpp" #include "oops/oop.inline.hpp" #include "prims/nativeLookup.hpp"
*** 41,51 **** #include "runtime/interfaceSupport.hpp" #include "runtime/javaCalls.hpp" #include "runtime/os.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/sweeper.hpp" - #include "trace/tracing.hpp" #include "utilities/dtrace.hpp" #include "utilities/events.hpp" #ifdef COMPILER1 #include "c1/c1_Compiler.hpp" #endif --- 42,51 ----
*** 1909,1918 **** --- 1909,1931 ---- } ttyLocker ttyl; tty->print("%s", s.as_string()); } + static void post_compilation_event(EventCompilation* event, CompileTask* task) { + assert(event != NULL, "invariant"); + assert(event->should_commit(), "invariant"); + 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(); + } + // ------------------------------------------------------------------ // CompileBroker::invoke_compiler_on_method // // Compile a method. //
*** 2006,2026 **** // Copy this bit to the enclosing block: compilable = ci_env.compilable(); if (ci_env.failing()) { ! task->set_failure_reason(ci_env.failure_reason()); const char* retry_message = ci_env.retry_message(); if (_compilation_log != NULL) { _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message); } if (PrintCompilation) { 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); } } else { task->mark_success(); task->set_num_inlined_bytecodes(ci_env.num_inlined_bytecodes()); if (_compilation_log != NULL) { nmethod* code = task->code(); --- 2019,2047 ---- // Copy this bit to the enclosing block: compilable = ci_env.compilable(); if (ci_env.failing()) { ! const char *failure_reason = ci_env.failure_reason(); const char* retry_message = ci_env.retry_message(); + task->set_failure_reason(failure_reason); if (_compilation_log != NULL) { _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message); } if (PrintCompilation) { 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); } + + EventCompilationFailure event; + if (event.should_commit()) { + event.set_compileId(compile_id); + event.set_failureMessage(failure_reason); + event.commit(); + } } else { task->mark_success(); task->set_num_inlined_bytecodes(ci_env.num_inlined_bytecodes()); if (_compilation_log != NULL) { nmethod* code = task->code();
*** 2030,2047 **** } } // simulate crash during compilation assert(task->compile_id() != CICrashAt, "just as planned"); if (event.should_commit()) { ! event.set_method(target->get_Method()); ! event.set_compileID(compile_id); ! event.set_compileLevel(task->comp_level()); ! event.set_succeded(task->is_success()); ! event.set_isOsr(is_osr); ! event.set_codeSize((task->code() == NULL) ? 0 : task->code()->total_size()); ! event.set_inlinedBytes(task->num_inlined_bytecodes()); ! event.commit(); } } pop_jni_handle_block(); methodHandle method(thread, task->method()); --- 2051,2061 ---- } } // simulate crash during compilation assert(task->compile_id() != CICrashAt, "just as planned"); if (event.should_commit()) { ! post_compilation_event(&event, task); } } pop_jni_handle_block(); methodHandle method(thread, task->method());
< prev index next >