comparison src/share/vm/opto/phase.cpp @ 14428:044b28168e20

8003854: PPC64 (part 115): Introduce PostallocExpand that expands nodes after register allocation Summary: added ability in C2 to expand mach nodes to several mach nodes after register allocation Reviewed-by: kvn
author goetz
date Thu, 14 Nov 2013 19:24:59 -0800
parents 6f3fd5150b67
children abec000618bf
comparison
equal deleted inserted replaced
14427:eb178e97560c 14428:044b28168e20
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() +