1.1 --- a/src/share/vm/opto/phase.cpp Wed Aug 12 14:27:54 2009 -0700 1.2 +++ b/src/share/vm/opto/phase.cpp Fri Aug 14 00:02:12 2009 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. 1.6 + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -53,6 +53,7 @@ 1.11 elapsedTimer Phase::_t_registerMethod; 1.12 elapsedTimer Phase::_t_temporaryTimer1; 1.13 elapsedTimer Phase::_t_temporaryTimer2; 1.14 +elapsedTimer Phase::_t_idealLoopVerify; 1.15 1.16 // Subtimers for _t_optimizer 1.17 elapsedTimer Phase::_t_iterGVN; 1.18 @@ -88,51 +89,52 @@ 1.19 tty->print_cr ("Accumulated compiler times:"); 1.20 tty->print_cr ("---------------------------"); 1.21 tty->print_cr (" Total compilation: %3.3f sec.", Phase::_t_totalCompilation.seconds()); 1.22 - tty->print (" method compilation : %3.3f sec", Phase::_t_methodCompilation.seconds()); 1.23 + tty->print (" method compilation : %3.3f sec", Phase::_t_methodCompilation.seconds()); 1.24 tty->print ("/%d bytes",_total_bytes_compiled); 1.25 tty->print_cr (" (%3.0f bytes per sec) ", Phase::_total_bytes_compiled / Phase::_t_methodCompilation.seconds()); 1.26 - tty->print_cr (" stub compilation : %3.3f sec.", Phase::_t_stubCompilation.seconds()); 1.27 + tty->print_cr (" stub compilation : %3.3f sec.", Phase::_t_stubCompilation.seconds()); 1.28 tty->print_cr (" Phases:"); 1.29 - tty->print_cr (" parse : %3.3f sec", Phase::_t_parser.seconds()); 1.30 + tty->print_cr (" parse : %3.3f sec", Phase::_t_parser.seconds()); 1.31 if (DoEscapeAnalysis) { 1.32 - tty->print_cr (" escape analysis : %3.3f sec", Phase::_t_escapeAnalysis.seconds()); 1.33 + tty->print_cr (" escape analysis : %3.3f sec", Phase::_t_escapeAnalysis.seconds()); 1.34 } 1.35 - tty->print_cr (" optimizer : %3.3f sec", Phase::_t_optimizer.seconds()); 1.36 + tty->print_cr (" optimizer : %3.3f sec", Phase::_t_optimizer.seconds()); 1.37 if( Verbose || WizardMode ) { 1.38 - tty->print_cr (" iterGVN : %3.3f sec", Phase::_t_iterGVN.seconds()); 1.39 - tty->print_cr (" idealLoop : %3.3f sec", Phase::_t_idealLoop.seconds()); 1.40 - tty->print_cr (" ccp : %3.3f sec", Phase::_t_ccp.seconds()); 1.41 - tty->print_cr (" iterGVN2 : %3.3f sec", Phase::_t_iterGVN2.seconds()); 1.42 - tty->print_cr (" graphReshape : %3.3f sec", Phase::_t_graphReshaping.seconds()); 1.43 + tty->print_cr (" iterGVN : %3.3f sec", Phase::_t_iterGVN.seconds()); 1.44 + tty->print_cr (" idealLoop : %3.3f sec", Phase::_t_idealLoop.seconds()); 1.45 + tty->print_cr (" idealLoopVerify: %3.3f sec", Phase::_t_idealLoopVerify.seconds()); 1.46 + tty->print_cr (" ccp : %3.3f sec", Phase::_t_ccp.seconds()); 1.47 + tty->print_cr (" iterGVN2 : %3.3f sec", Phase::_t_iterGVN2.seconds()); 1.48 + tty->print_cr (" graphReshape : %3.3f sec", Phase::_t_graphReshaping.seconds()); 1.49 double optimizer_subtotal = Phase::_t_iterGVN.seconds() + 1.50 Phase::_t_idealLoop.seconds() + Phase::_t_ccp.seconds() + 1.51 Phase::_t_graphReshaping.seconds(); 1.52 double percent_of_optimizer = ((optimizer_subtotal == 0.0) ? 0.0 : (optimizer_subtotal / Phase::_t_optimizer.seconds() * 100.0)); 1.53 - tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", optimizer_subtotal, percent_of_optimizer); 1.54 + tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", optimizer_subtotal, percent_of_optimizer); 1.55 } 1.56 - tty->print_cr (" matcher : %3.3f sec", Phase::_t_matcher.seconds()); 1.57 - tty->print_cr (" scheduler : %3.3f sec", Phase::_t_scheduler.seconds()); 1.58 - tty->print_cr (" regalloc : %3.3f sec", Phase::_t_registerAllocation.seconds()); 1.59 + tty->print_cr (" matcher : %3.3f sec", Phase::_t_matcher.seconds()); 1.60 + tty->print_cr (" scheduler : %3.3f sec", Phase::_t_scheduler.seconds()); 1.61 + tty->print_cr (" regalloc : %3.3f sec", Phase::_t_registerAllocation.seconds()); 1.62 if( Verbose || WizardMode ) { 1.63 - tty->print_cr (" ctorChaitin : %3.3f sec", Phase::_t_ctorChaitin.seconds()); 1.64 - tty->print_cr (" buildIFG : %3.3f sec", Phase::_t_buildIFGphysical.seconds()); 1.65 - tty->print_cr (" computeLive : %3.3f sec", Phase::_t_computeLive.seconds()); 1.66 - tty->print_cr (" regAllocSplit: %3.3f sec", Phase::_t_regAllocSplit.seconds()); 1.67 + tty->print_cr (" ctorChaitin : %3.3f sec", Phase::_t_ctorChaitin.seconds()); 1.68 + tty->print_cr (" buildIFG : %3.3f sec", Phase::_t_buildIFGphysical.seconds()); 1.69 + tty->print_cr (" computeLive : %3.3f sec", Phase::_t_computeLive.seconds()); 1.70 + tty->print_cr (" regAllocSplit : %3.3f sec", Phase::_t_regAllocSplit.seconds()); 1.71 tty->print_cr (" postAllocCopyRemoval: %3.3f sec", Phase::_t_postAllocCopyRemoval.seconds()); 1.72 - tty->print_cr (" fixupSpills : %3.3f sec", Phase::_t_fixupSpills.seconds()); 1.73 + tty->print_cr (" fixupSpills : %3.3f sec", Phase::_t_fixupSpills.seconds()); 1.74 double regalloc_subtotal = Phase::_t_ctorChaitin.seconds() + 1.75 Phase::_t_buildIFGphysical.seconds() + Phase::_t_computeLive.seconds() + 1.76 Phase::_t_regAllocSplit.seconds() + Phase::_t_fixupSpills.seconds() + 1.77 Phase::_t_postAllocCopyRemoval.seconds(); 1.78 double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0)); 1.79 - tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); 1.80 + tty->print_cr (" subtotal : %3.3f sec, %3.2f %%", regalloc_subtotal, percent_of_regalloc); 1.81 } 1.82 - tty->print_cr (" macroExpand : %3.3f sec", Phase::_t_macroExpand.seconds()); 1.83 - tty->print_cr (" blockOrdering: %3.3f sec", Phase::_t_blockOrdering.seconds()); 1.84 - tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); 1.85 - tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); 1.86 - tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); 1.87 - tty->print_cr (" ------------ : ----------"); 1.88 + tty->print_cr (" macroExpand : %3.3f sec", Phase::_t_macroExpand.seconds()); 1.89 + tty->print_cr (" blockOrdering : %3.3f sec", Phase::_t_blockOrdering.seconds()); 1.90 + tty->print_cr (" peephole : %3.3f sec", Phase::_t_peephole.seconds()); 1.91 + tty->print_cr (" codeGen : %3.3f sec", Phase::_t_codeGeneration.seconds()); 1.92 + tty->print_cr (" install_code : %3.3f sec", Phase::_t_registerMethod.seconds()); 1.93 + tty->print_cr (" -------------- : ----------"); 1.94 double phase_subtotal = Phase::_t_parser.seconds() + 1.95 (DoEscapeAnalysis ? Phase::_t_escapeAnalysis.seconds() : 0.0) + 1.96 Phase::_t_optimizer.seconds() + Phase::_t_graphReshaping.seconds() + 1.97 @@ -143,7 +145,7 @@ 1.98 double percent_of_method_compile = ((phase_subtotal == 0.0) ? 0.0 : phase_subtotal / Phase::_t_methodCompilation.seconds()) * 100.0; 1.99 // counters inside Compile::CodeGen include time for adapters and stubs 1.100 // so phase-total can be greater than 100% 1.101 - tty->print_cr (" total : %3.3f sec, %3.2f %%", phase_subtotal, percent_of_method_compile); 1.102 + tty->print_cr (" total : %3.3f sec, %3.2f %%", phase_subtotal, percent_of_method_compile); 1.103 1.104 assert( percent_of_method_compile > expected_method_compile_coverage || 1.105 phase_subtotal < minimum_meaningful_method_compile, 1.106 @@ -157,8 +159,8 @@ 1.107 tty->cr(); 1.108 tty->print_cr (" temporaryTimer2: %3.3f sec", Phase::_t_temporaryTimer2.seconds()); 1.109 } 1.110 - tty->print_cr (" output : %3.3f sec", Phase::_t_output.seconds()); 1.111 - tty->print_cr (" isched : %3.3f sec", Phase::_t_instrSched.seconds()); 1.112 - tty->print_cr (" bldOopMaps: %3.3f sec", Phase::_t_buildOopMaps.seconds()); 1.113 + tty->print_cr (" output : %3.3f sec", Phase::_t_output.seconds()); 1.114 + tty->print_cr (" isched : %3.3f sec", Phase::_t_instrSched.seconds()); 1.115 + tty->print_cr (" bldOopMaps : %3.3f sec", Phase::_t_buildOopMaps.seconds()); 1.116 } 1.117 #endif