Mercurial > hg > truffle
comparison src/share/vm/opto/chaitin.hpp @ 14496:99fc8c086679
8032894: Remove dead code in Pressure::lower
Summary: Remove dead code in Pressure::lower
Reviewed-by: kvn, roland
author | adlertz |
---|---|
date | Tue, 25 Feb 2014 10:26:21 +0100 |
parents | c84312468f5c |
children | 04e7587c97dc |
comparison
equal
deleted
inserted
replaced
14495:cd5d10655495 | 14496:99fc8c086679 |
---|---|
499 | 499 |
500 // Build the interference graph using virtual registers only. | 500 // Build the interference graph using virtual registers only. |
501 // Used for aggressive coalescing. | 501 // Used for aggressive coalescing. |
502 void build_ifg_virtual( ); | 502 void build_ifg_virtual( ); |
503 | 503 |
504 // used when computing the register pressure for each block in the CFG. This | |
505 // is done during IFG creation. | |
504 class Pressure { | 506 class Pressure { |
505 public: | |
506 // keeps track of the register pressure at the current | 507 // keeps track of the register pressure at the current |
507 // instruction (used when stepping backwards in the block) | 508 // instruction (used when stepping backwards in the block) |
508 uint _current_pressure; | 509 uint _current_pressure; |
509 | 510 |
510 // keeps track of the instruction index of the first low to high register pressure | 511 // keeps track of the instruction index of the first low to high register pressure |
516 // stores the highest pressure we find | 517 // stores the highest pressure we find |
517 uint _final_pressure; | 518 uint _final_pressure; |
518 | 519 |
519 // number of live ranges that constitute high register pressure | 520 // number of live ranges that constitute high register pressure |
520 const uint _high_pressure_limit; | 521 const uint _high_pressure_limit; |
522 public: | |
521 | 523 |
522 // lower the register pressure and look for a low to high pressure | 524 // lower the register pressure and look for a low to high pressure |
523 // transition | 525 // transition |
524 void lower(LRG& lrg, uint& location) { | 526 void lower(LRG& lrg, uint& location) { |
525 _current_pressure -= lrg.reg_pressure(); | 527 _current_pressure -= lrg.reg_pressure(); |
526 if (_current_pressure == _high_pressure_limit) { | 528 if (_current_pressure == _high_pressure_limit) { |
527 _high_pressure_index = location; | 529 _high_pressure_index = location; |
528 if (_current_pressure > _final_pressure) { | |
529 _final_pressure = _current_pressure + 1; | |
530 } | |
531 } | 530 } |
532 } | 531 } |
533 | 532 |
534 // raise the pressure and store the pressure if it's the biggest | 533 // raise the pressure and store the pressure if it's the biggest |
535 // pressure so far | 534 // pressure so far |
536 void raise(LRG &lrg) { | 535 void raise(LRG &lrg) { |
537 _current_pressure += lrg.reg_pressure(); | 536 _current_pressure += lrg.reg_pressure(); |
538 if (_current_pressure > _final_pressure) { | 537 if (_current_pressure > _final_pressure) { |
539 _final_pressure = _current_pressure; | 538 _final_pressure = _current_pressure; |
539 } | |
540 } | |
541 | |
542 uint high_pressure_index() const { | |
543 return _high_pressure_index; | |
544 } | |
545 | |
546 uint final_pressure() const { | |
547 return _final_pressure; | |
548 } | |
549 | |
550 uint current_pressure() const { | |
551 return _current_pressure; | |
552 } | |
553 | |
554 uint high_pressure_limit() const { | |
555 return _high_pressure_limit; | |
556 } | |
557 | |
558 void lower_high_pressure_index() { | |
559 _high_pressure_index--; | |
560 } | |
561 | |
562 void set_high_pressure_index_to_block_start() { | |
563 _high_pressure_index = 0; | |
564 } | |
565 | |
566 void check_pressure_at_fatproj(uint fatproj_location, RegMask& fatproj_mask) { | |
567 // this pressure is only valid at this instruction, i.e. we don't need to lower | |
568 // the register pressure since the fat proj was never live before (going backwards) | |
569 uint new_pressure = current_pressure() + fatproj_mask.Size(); | |
570 if (new_pressure > final_pressure()) { | |
571 _final_pressure = new_pressure; | |
572 } | |
573 | |
574 // if we were at a low pressure and now and the fat proj is at high pressure, record the fat proj location | |
575 // as coming from a low to high (to low again) | |
576 if (current_pressure() <= high_pressure_limit() && new_pressure > high_pressure_limit()) { | |
577 _high_pressure_index = fatproj_location; | |
540 } | 578 } |
541 } | 579 } |
542 | 580 |
543 Pressure(uint high_pressure_index, uint high_pressure_limit) | 581 Pressure(uint high_pressure_index, uint high_pressure_limit) |
544 : _current_pressure(0) | 582 : _current_pressure(0) |