24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "code/nmethod.hpp" |
26 #include "code/nmethod.hpp" |
27 #include "compiler/compileBroker.hpp" |
27 #include "compiler/compileBroker.hpp" |
28 #include "opto/compile.hpp" |
28 #include "opto/compile.hpp" |
|
29 #include "opto/matcher.hpp" |
29 #include "opto/node.hpp" |
30 #include "opto/node.hpp" |
30 #include "opto/phase.hpp" |
31 #include "opto/phase.hpp" |
31 |
32 |
32 #ifndef PRODUCT |
33 #ifndef PRODUCT |
33 int Phase::_total_bytes_compiled = 0; |
34 int Phase::_total_bytes_compiled = 0; |
53 elapsedTimer Phase::_t_scheduler; |
54 elapsedTimer Phase::_t_scheduler; |
54 elapsedTimer Phase::_t_blockOrdering; |
55 elapsedTimer Phase::_t_blockOrdering; |
55 elapsedTimer Phase::_t_macroEliminate; |
56 elapsedTimer Phase::_t_macroEliminate; |
56 elapsedTimer Phase::_t_macroExpand; |
57 elapsedTimer Phase::_t_macroExpand; |
57 elapsedTimer Phase::_t_peephole; |
58 elapsedTimer Phase::_t_peephole; |
|
59 elapsedTimer Phase::_t_postalloc_expand; |
58 elapsedTimer Phase::_t_codeGeneration; |
60 elapsedTimer Phase::_t_codeGeneration; |
59 elapsedTimer Phase::_t_registerMethod; |
61 elapsedTimer Phase::_t_registerMethod; |
60 elapsedTimer Phase::_t_temporaryTimer1; |
62 elapsedTimer Phase::_t_temporaryTimer1; |
61 elapsedTimer Phase::_t_temporaryTimer2; |
63 elapsedTimer Phase::_t_temporaryTimer2; |
62 elapsedTimer Phase::_t_idealLoopVerify; |
64 elapsedTimer Phase::_t_idealLoopVerify; |
142 double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0)); |
144 double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0)); |
143 tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); |
145 tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); |
144 } |
146 } |
145 tty->print_cr (" blockOrdering : %3.3f sec", Phase::_t_blockOrdering.seconds()); |
147 tty->print_cr (" blockOrdering : %3.3f sec", Phase::_t_blockOrdering.seconds()); |
146 tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); |
148 tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); |
|
149 if (Matcher::require_postalloc_expand) { |
|
150 tty->print_cr (" postalloc_expand: %3.3f sec", Phase::_t_postalloc_expand.seconds()); |
|
151 } |
147 tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); |
152 tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); |
148 tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); |
153 tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); |
149 tty->print_cr (" -------------- : ----------"); |
154 tty->print_cr (" -------------- : ----------"); |
150 double phase_subtotal = Phase::_t_parser.seconds() + |
155 double phase_subtotal = Phase::_t_parser.seconds() + |
151 Phase::_t_optimizer.seconds() + Phase::_t_graphReshaping.seconds() + |
156 Phase::_t_optimizer.seconds() + Phase::_t_graphReshaping.seconds() + |