Print this page
rev 7082 : 8068881: SIGBUS in C2 compiled method weblogic.wsee.jaxws.framework.jaxrpc.EnvironmentFactory$SimulatedWsdlDefinitions.<init>
Summary: Use MachMerge to hook together defs of the same multidef value in a block
Reviewed-by: kvn, vlivanov

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/opto/phase.cpp
          +++ new/hotspot/src/share/vm/opto/phase.cpp
↓ open down ↓ 66 lines elided ↑ open up ↑
  67   67  elapsedTimer   Phase::_t_iterGVN;
  68   68  elapsedTimer   Phase::_t_iterGVN2;
  69   69  elapsedTimer   Phase::_t_incrInline;
  70   70  
  71   71  // Subtimers for _t_registerAllocation
  72   72  elapsedTimer   Phase::_t_ctorChaitin;
  73   73  elapsedTimer   Phase::_t_buildIFGphysical;
  74   74  elapsedTimer   Phase::_t_computeLive;
  75   75  elapsedTimer   Phase::_t_regAllocSplit;
  76   76  elapsedTimer   Phase::_t_postAllocCopyRemoval;
       77 +elapsedTimer   Phase::_t_mergeMultidefs;
  77   78  elapsedTimer   Phase::_t_fixupSpills;
  78   79  
  79   80  // Subtimers for _t_output
  80   81  elapsedTimer   Phase::_t_instrSched;
  81   82  elapsedTimer   Phase::_t_buildOopMaps;
  82   83  #endif
  83   84  
  84   85  //------------------------------Phase------------------------------------------
  85   86  Phase::Phase( PhaseNumber pnum ) : _pnum(pnum), C( pnum == Compiler ? NULL : Compile::current()) {
  86   87    // Poll for requests from shutdown mechanism to quiesce compiler (4448539, 4448544).
↓ open down ↓ 42 lines elided ↑ open up ↑
 129  130    }
 130  131    tty->print_cr ("    matcher        : %3.3f sec", Phase::_t_matcher.seconds());
 131  132    tty->print_cr ("    scheduler      : %3.3f sec", Phase::_t_scheduler.seconds());
 132  133    tty->print_cr ("    regalloc       : %3.3f sec", Phase::_t_registerAllocation.seconds());
 133  134    if( Verbose || WizardMode ) {
 134  135      tty->print_cr ("      ctorChaitin    : %3.3f sec", Phase::_t_ctorChaitin.seconds());
 135  136      tty->print_cr ("      buildIFG       : %3.3f sec", Phase::_t_buildIFGphysical.seconds());
 136  137      tty->print_cr ("      computeLive    : %3.3f sec", Phase::_t_computeLive.seconds());
 137  138      tty->print_cr ("      regAllocSplit  : %3.3f sec", Phase::_t_regAllocSplit.seconds());
 138  139      tty->print_cr ("      postAllocCopyRemoval: %3.3f sec", Phase::_t_postAllocCopyRemoval.seconds());
      140 +    tty->print_cr ("      mergeMultidefs: %3.3f sec", Phase::_t_mergeMultidefs.seconds());
 139  141      tty->print_cr ("      fixupSpills    : %3.3f sec", Phase::_t_fixupSpills.seconds());
 140  142      double regalloc_subtotal = Phase::_t_ctorChaitin.seconds() +
 141  143        Phase::_t_buildIFGphysical.seconds() + Phase::_t_computeLive.seconds() +
 142  144        Phase::_t_regAllocSplit.seconds()    + Phase::_t_fixupSpills.seconds() +
 143      -      Phase::_t_postAllocCopyRemoval.seconds();
      145 +      Phase::_t_postAllocCopyRemoval.seconds() + Phase::_t_mergeMultidefs.seconds();
 144  146      double percent_of_regalloc = ((regalloc_subtotal == 0.0) ? 0.0 : (regalloc_subtotal / Phase::_t_registerAllocation.seconds() * 100.0));
 145  147      tty->print_cr ("      subtotal       : %3.3f sec,  %3.2f %%", regalloc_subtotal, percent_of_regalloc);
 146  148    }
 147  149    tty->print_cr ("    blockOrdering  : %3.3f sec", Phase::_t_blockOrdering.seconds());
 148  150    tty->print_cr ("    peephole       : %3.3f sec", Phase::_t_peephole.seconds());
 149  151    if (Matcher::require_postalloc_expand) {
 150  152      tty->print_cr ("    postalloc_expand: %3.3f sec", Phase::_t_postalloc_expand.seconds());
 151  153    }
 152  154    tty->print_cr ("    codeGen        : %3.3f sec", Phase::_t_codeGeneration.seconds());
 153  155    tty->print_cr ("    install_code   : %3.3f sec", Phase::_t_registerMethod.seconds());
↓ open down ↓ 28 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX