diff -r 3fc49366dc15 -r 01a2b863cc61 hotspot/src/share/vm/c1/c1_Compilation.cpp --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp Fri Oct 05 13:37:08 2012 -0700 +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp Fri Oct 05 18:57:10 2012 -0700 @@ -32,6 +32,7 @@ #include "c1/c1_ValueMap.hpp" #include "c1/c1_ValueStack.hpp" #include "code/debugInfoRec.hpp" +#include "compiler/compileLog.hpp" typedef enum { @@ -67,10 +68,25 @@ class PhaseTraceTime: public TraceTime { private: JavaThread* _thread; + CompileLog* _log; public: - PhaseTraceTime(TimerName timer): - TraceTime("", &timers[timer], CITime || CITimeEach, Verbose) { + PhaseTraceTime(TimerName timer) + : TraceTime("", &timers[timer], CITime || CITimeEach, Verbose), _log(NULL) { + if (Compilation::current() != NULL) { + _log = Compilation::current()->log(); + } + + if (_log != NULL) { + _log->begin_head("phase name='%s'", timer_name[timer]); + _log->stamp(); + _log->end_head(); + } + } + + ~PhaseTraceTime() { + if (_log != NULL) + _log->done("phase"); } }; @@ -390,6 +406,10 @@ PhaseTraceTime timeit(_t_codeinstall); install_code(frame_size); } + + if (log() != NULL) // Print code cache state into compiler log + log()->code_cache_state(); + totalInstructionNodes += Instruction::number_of_instructions(); } @@ -456,6 +476,7 @@ int osr_bci, BufferBlob* buffer_blob) : _compiler(compiler) , _env(env) +, _log(env->log()) , _method(method) , _osr_bci(osr_bci) , _hir(NULL)