Lines Matching refs:pressure
307 // interferences as an estimate of register pressure.
441 // Adjust register pressure down by 1. Capture last hi-to-low transition,
442 static void lower_pressure( LRG *lrg, uint where, Block *b, uint *pressure, uint *hrp_index ) {
445 pressure[1] -= lrg->reg_pressure();
446 if( pressure[1] == (uint)FLOATPRESSURE ) {
449 if( pressure[1] > b->_freg_pressure )
450 b->_freg_pressure = pressure[1]+1;
456 pressure[0] -= lrg->reg_pressure();
457 if( pressure[0] == (uint)INTPRESSURE ) {
460 if( pressure[0] > b->_reg_pressure )
461 b->_reg_pressure = pressure[0]+1;
509 // Reset block's register pressure values for each ifg construction
510 uint pressure[2], hrp_index[2];
511 pressure[0] = pressure[1] = 0;
525 // Compute initial register pressure
527 if (lrg._is_float || lrg._is_vector) { // Count float pressure
528 pressure[1] += lrg.reg_pressure();
530 if( pressure[1] > b->_freg_pressure )
531 b->_freg_pressure = pressure[1];
533 // Count int pressure, but do not count the SP, flags
535 pressure[0] += lrg.reg_pressure();
537 if( pressure[0] > b->_reg_pressure )
538 b->_reg_pressure = pressure[0];
543 assert( pressure[0] == count_int_pressure (&liveout), "" );
544 assert( pressure[1] == count_float_pressure(&liveout), "" );
579 // Since yanking a Node from block, high pressure moves up one
593 if( pressure[0]+iregs > b->_reg_pressure )
594 b->_reg_pressure = pressure[0]+iregs;
596 if( pressure[0] <= (uint)INTPRESSURE &&
597 pressure[0]+iregs > (uint)INTPRESSURE ) {
608 if( pressure[1]+fregs > b->_freg_pressure )
609 b->_freg_pressure = pressure[1]+fregs;
611 if( pressure[1] <= (uint)FLOATPRESSURE &&
612 pressure[1]+fregs > (uint)FLOATPRESSURE ) {
653 // Adjust register pressure.
654 // Capture last hi-to-lo pressure transition
655 lower_pressure( &lrgs(r), j-1, b, pressure, hrp_index );
656 assert( pressure[0] == count_int_pressure (&liveout), "" );
657 assert( pressure[1] == count_float_pressure(&liveout), "" );
667 // Adjust register pressure.
668 lower_pressure( &lrgs(x), j-1, b, pressure, hrp_index );
669 assert( pressure[0] == count_int_pressure (&liveout), "" );
670 assert( pressure[1] == count_float_pressure(&liveout), "" );
768 // Adjust register pressure
771 pressure[1] += lrg.reg_pressure();
773 if( pressure[1] > b->_freg_pressure )
774 b->_freg_pressure = pressure[1];
777 pressure[0] += lrg.reg_pressure();
779 if( pressure[0] > b->_reg_pressure )
780 b->_reg_pressure = pressure[0];
784 assert( pressure[0] == count_int_pressure (&liveout), "" );
785 assert( pressure[1] == count_float_pressure(&liveout), "" );
792 // If we run off the top of the block with high pressure and
793 // never see a hi-to-low pressure transition, just record that
794 // the whole block is high pressure.
795 if( pressure[0] > (uint)INTPRESSURE ) {
798 if( pressure[0] > b->_reg_pressure )
799 b->_reg_pressure = pressure[0];
804 if( pressure[1] > (uint)FLOATPRESSURE ) {
807 if( pressure[1] > b->_freg_pressure )
808 b->_freg_pressure = pressure[1];
814 // Compute high pressure indice; avoid landing in the middle of projnodes