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