src/share/vm/opto/ifg.cpp

changeset 4867
b808febcad9a
parent 4315
2aff40cb4703
child 4949
8373c19be854
     1.1 --- a/src/share/vm/opto/ifg.cpp	Mon Mar 25 17:13:26 2013 -0700
     1.2 +++ b/src/share/vm/opto/ifg.cpp	Tue Mar 26 10:05:33 2013 +0100
     1.3 @@ -37,8 +37,6 @@
     1.4  #include "opto/memnode.hpp"
     1.5  #include "opto/opcodes.hpp"
     1.6  
     1.7 -#define EXACT_PRESSURE 1
     1.8 -
     1.9  //=============================================================================
    1.10  //------------------------------IFG--------------------------------------------
    1.11  PhaseIFG::PhaseIFG( Arena *arena ) : Phase(Interference_Graph), _arena(arena) {
    1.12 @@ -445,23 +443,15 @@
    1.13        pressure[1] -= lrg->reg_pressure();
    1.14        if( pressure[1] == (uint)FLOATPRESSURE ) {
    1.15          hrp_index[1] = where;
    1.16 -#ifdef EXACT_PRESSURE
    1.17 -      if( pressure[1] > b->_freg_pressure )
    1.18 -        b->_freg_pressure = pressure[1]+1;
    1.19 -#else
    1.20 -        b->_freg_pressure = (uint)FLOATPRESSURE+1;
    1.21 -#endif
    1.22 +        if( pressure[1] > b->_freg_pressure )
    1.23 +          b->_freg_pressure = pressure[1]+1;
    1.24        }
    1.25      } else if( lrg->mask().overlap(*Matcher::idealreg2regmask[Op_RegI]) ) {
    1.26        pressure[0] -= lrg->reg_pressure();
    1.27        if( pressure[0] == (uint)INTPRESSURE   ) {
    1.28          hrp_index[0] = where;
    1.29 -#ifdef EXACT_PRESSURE
    1.30 -      if( pressure[0] > b->_reg_pressure )
    1.31 -        b->_reg_pressure = pressure[0]+1;
    1.32 -#else
    1.33 -        b->_reg_pressure = (uint)INTPRESSURE+1;
    1.34 -#endif
    1.35 +        if( pressure[0] > b->_reg_pressure )
    1.36 +          b->_reg_pressure = pressure[0]+1;
    1.37        }
    1.38      }
    1.39    }
    1.40 @@ -526,17 +516,13 @@
    1.41        if (lrg.mask().is_UP() && lrg.mask_size()) {
    1.42          if (lrg._is_float || lrg._is_vector) {   // Count float pressure
    1.43            pressure[1] += lrg.reg_pressure();
    1.44 -#ifdef EXACT_PRESSURE
    1.45            if( pressure[1] > b->_freg_pressure )
    1.46              b->_freg_pressure = pressure[1];
    1.47 -#endif
    1.48            // Count int pressure, but do not count the SP, flags
    1.49          } else if( lrgs(lidx).mask().overlap(*Matcher::idealreg2regmask[Op_RegI]) ) {
    1.50            pressure[0] += lrg.reg_pressure();
    1.51 -#ifdef EXACT_PRESSURE
    1.52            if( pressure[0] > b->_reg_pressure )
    1.53              b->_reg_pressure = pressure[0];
    1.54 -#endif
    1.55          }
    1.56        }
    1.57      }
    1.58 @@ -589,30 +575,20 @@
    1.59              RegMask itmp = lrgs(r).mask();
    1.60              itmp.AND(*Matcher::idealreg2regmask[Op_RegI]);
    1.61              int iregs = itmp.Size();
    1.62 -#ifdef EXACT_PRESSURE
    1.63              if( pressure[0]+iregs > b->_reg_pressure )
    1.64                b->_reg_pressure = pressure[0]+iregs;
    1.65 -#endif
    1.66              if( pressure[0]       <= (uint)INTPRESSURE &&
    1.67                  pressure[0]+iregs >  (uint)INTPRESSURE ) {
    1.68 -#ifndef EXACT_PRESSURE
    1.69 -              b->_reg_pressure = (uint)INTPRESSURE+1;
    1.70 -#endif
    1.71                hrp_index[0] = j-1;
    1.72              }
    1.73              // Count the float-only registers
    1.74              RegMask ftmp = lrgs(r).mask();
    1.75              ftmp.AND(*Matcher::idealreg2regmask[Op_RegD]);
    1.76              int fregs = ftmp.Size();
    1.77 -#ifdef EXACT_PRESSURE
    1.78              if( pressure[1]+fregs > b->_freg_pressure )
    1.79                b->_freg_pressure = pressure[1]+fregs;
    1.80 -#endif
    1.81              if( pressure[1]       <= (uint)FLOATPRESSURE &&
    1.82                  pressure[1]+fregs >  (uint)FLOATPRESSURE ) {
    1.83 -#ifndef EXACT_PRESSURE
    1.84 -              b->_freg_pressure = (uint)FLOATPRESSURE+1;
    1.85 -#endif
    1.86                hrp_index[1] = j-1;
    1.87              }
    1.88            }
    1.89 @@ -769,16 +745,12 @@
    1.90              if (lrg.mask().is_UP() && lrg.mask_size()) {
    1.91                if (lrg._is_float || lrg._is_vector) {
    1.92                  pressure[1] += lrg.reg_pressure();
    1.93 -#ifdef EXACT_PRESSURE
    1.94                  if( pressure[1] > b->_freg_pressure )
    1.95                    b->_freg_pressure = pressure[1];
    1.96 -#endif
    1.97                } else if( lrg.mask().overlap(*Matcher::idealreg2regmask[Op_RegI]) ) {
    1.98                  pressure[0] += lrg.reg_pressure();
    1.99 -#ifdef EXACT_PRESSURE
   1.100                  if( pressure[0] > b->_reg_pressure )
   1.101                    b->_reg_pressure = pressure[0];
   1.102 -#endif
   1.103                }
   1.104              }
   1.105              assert( pressure[0] == count_int_pressure  (&liveout), "" );
   1.106 @@ -794,21 +766,13 @@
   1.107      // the whole block is high pressure.
   1.108      if( pressure[0] > (uint)INTPRESSURE   ) {
   1.109        hrp_index[0] = 0;
   1.110 -#ifdef EXACT_PRESSURE
   1.111        if( pressure[0] > b->_reg_pressure )
   1.112          b->_reg_pressure = pressure[0];
   1.113 -#else
   1.114 -      b->_reg_pressure = (uint)INTPRESSURE+1;
   1.115 -#endif
   1.116      }
   1.117      if( pressure[1] > (uint)FLOATPRESSURE ) {
   1.118        hrp_index[1] = 0;
   1.119 -#ifdef EXACT_PRESSURE
   1.120        if( pressure[1] > b->_freg_pressure )
   1.121          b->_freg_pressure = pressure[1];
   1.122 -#else
   1.123 -      b->_freg_pressure = (uint)FLOATPRESSURE+1;
   1.124 -#endif
   1.125      }
   1.126  
   1.127      // Compute high pressure indice; avoid landing in the middle of projnodes

mercurial