1.1 --- a/src/share/vm/c1/c1_Compilation.cpp Tue Oct 09 10:09:34 2012 -0700 1.2 +++ b/src/share/vm/c1/c1_Compilation.cpp Fri Oct 12 09:22:52 2012 -0700 1.3 @@ -32,6 +32,7 @@ 1.4 #include "c1/c1_ValueMap.hpp" 1.5 #include "c1/c1_ValueStack.hpp" 1.6 #include "code/debugInfoRec.hpp" 1.7 +#include "compiler/compileLog.hpp" 1.8 1.9 1.10 typedef enum { 1.11 @@ -67,10 +68,25 @@ 1.12 class PhaseTraceTime: public TraceTime { 1.13 private: 1.14 JavaThread* _thread; 1.15 + CompileLog* _log; 1.16 1.17 public: 1.18 - PhaseTraceTime(TimerName timer): 1.19 - TraceTime("", &timers[timer], CITime || CITimeEach, Verbose) { 1.20 + PhaseTraceTime(TimerName timer) 1.21 + : TraceTime("", &timers[timer], CITime || CITimeEach, Verbose), _log(NULL) { 1.22 + if (Compilation::current() != NULL) { 1.23 + _log = Compilation::current()->log(); 1.24 + } 1.25 + 1.26 + if (_log != NULL) { 1.27 + _log->begin_head("phase name='%s'", timer_name[timer]); 1.28 + _log->stamp(); 1.29 + _log->end_head(); 1.30 + } 1.31 + } 1.32 + 1.33 + ~PhaseTraceTime() { 1.34 + if (_log != NULL) 1.35 + _log->done("phase"); 1.36 } 1.37 }; 1.38 1.39 @@ -390,6 +406,10 @@ 1.40 PhaseTraceTime timeit(_t_codeinstall); 1.41 install_code(frame_size); 1.42 } 1.43 + 1.44 + if (log() != NULL) // Print code cache state into compiler log 1.45 + log()->code_cache_state(); 1.46 + 1.47 totalInstructionNodes += Instruction::number_of_instructions(); 1.48 } 1.49 1.50 @@ -456,6 +476,7 @@ 1.51 int osr_bci, BufferBlob* buffer_blob) 1.52 : _compiler(compiler) 1.53 , _env(env) 1.54 +, _log(env->log()) 1.55 , _method(method) 1.56 , _osr_bci(osr_bci) 1.57 , _hir(NULL)