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%