Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/phase.cpp @ 418:72c5366e5d86
6743900: frequency based block layout
Summary: post-register allocation pass that drives block layout by edge frequencies
Reviewed-by: never, kvn
author | rasbold |
---|---|
date | Thu, 06 Nov 2008 14:59:10 -0800 |
parents | a61af66fc99e |
children | ad8c8ca4ab0f |
comparison
equal
deleted
inserted
replaced
417:f4fe12e429a4 | 418:72c5366e5d86 |
---|---|
44 elapsedTimer Phase::_t_output; | 44 elapsedTimer Phase::_t_output; |
45 | 45 |
46 #ifndef PRODUCT | 46 #ifndef PRODUCT |
47 elapsedTimer Phase::_t_graphReshaping; | 47 elapsedTimer Phase::_t_graphReshaping; |
48 elapsedTimer Phase::_t_scheduler; | 48 elapsedTimer Phase::_t_scheduler; |
49 elapsedTimer Phase::_t_removeEmptyBlocks; | 49 elapsedTimer Phase::_t_blockOrdering; |
50 elapsedTimer Phase::_t_macroExpand; | 50 elapsedTimer Phase::_t_macroExpand; |
51 elapsedTimer Phase::_t_peephole; | 51 elapsedTimer Phase::_t_peephole; |
52 elapsedTimer Phase::_t_codeGeneration; | 52 elapsedTimer Phase::_t_codeGeneration; |
53 elapsedTimer Phase::_t_registerMethod; | 53 elapsedTimer Phase::_t_registerMethod; |
54 elapsedTimer Phase::_t_temporaryTimer1; | 54 elapsedTimer Phase::_t_temporaryTimer1; |
126 Phase::_t_postAllocCopyRemoval.seconds(); | 126 Phase::_t_postAllocCopyRemoval.seconds(); |
127 double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0)); | 127 double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0)); |
128 tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); | 128 tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); |
129 } | 129 } |
130 tty->print_cr (" macroExpand : %3.3f sec", Phase::_t_macroExpand.seconds()); | 130 tty->print_cr (" macroExpand : %3.3f sec", Phase::_t_macroExpand.seconds()); |
131 tty->print_cr (" removeEmpty : %3.3f sec", Phase::_t_removeEmptyBlocks.seconds()); | 131 tty->print_cr (" blockOrdering: %3.3f sec", Phase::_t_blockOrdering.seconds()); |
132 tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); | 132 tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); |
133 tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); | 133 tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); |
134 tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); | 134 tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); |
135 tty->print_cr (" ------------ : ----------"); | 135 tty->print_cr (" ------------ : ----------"); |
136 double phase_subtotal = Phase::_t_parser.seconds() + | 136 double phase_subtotal = Phase::_t_parser.seconds() + |
137 (DoEscapeAnalysis ? Phase::_t_escapeAnalysis.seconds() : 0.0) + | 137 (DoEscapeAnalysis ? Phase::_t_escapeAnalysis.seconds() : 0.0) + |
138 Phase::_t_optimizer.seconds() + Phase::_t_graphReshaping.seconds() + | 138 Phase::_t_optimizer.seconds() + Phase::_t_graphReshaping.seconds() + |
139 Phase::_t_matcher.seconds() + Phase::_t_scheduler.seconds() + | 139 Phase::_t_matcher.seconds() + Phase::_t_scheduler.seconds() + |
140 Phase::_t_registerAllocation.seconds() + Phase::_t_removeEmptyBlocks.seconds() + | 140 Phase::_t_registerAllocation.seconds() + Phase::_t_blockOrdering.seconds() + |
141 Phase::_t_macroExpand.seconds() + Phase::_t_peephole.seconds() + | 141 Phase::_t_macroExpand.seconds() + Phase::_t_peephole.seconds() + |
142 Phase::_t_codeGeneration.seconds() + Phase::_t_registerMethod.seconds(); | 142 Phase::_t_codeGeneration.seconds() + Phase::_t_registerMethod.seconds(); |
143 double percent_of_method_compile = ((phase_subtotal == 0.0) ? 0.0 : phase_subtotal / Phase::_t_methodCompilation.seconds()) * 100.0; | 143 double percent_of_method_compile = ((phase_subtotal == 0.0) ? 0.0 : phase_subtotal / Phase::_t_methodCompilation.seconds()) * 100.0; |
144 // counters inside Compile::CodeGen include time for adapters and stubs | 144 // counters inside Compile::CodeGen include time for adapters and stubs |
145 // so phase-total can be greater than 100% | 145 // so phase-total can be greater than 100% |