src/share/vm/opto/live.hpp

changeset 4728
056ab43544a4
parent 2314
f95d63e2154a
child 4949
8373c19be854
     1.1 --- a/src/share/vm/opto/live.hpp	Fri Mar 08 08:22:18 2013 -0800
     1.2 +++ b/src/share/vm/opto/live.hpp	Wed Mar 13 10:56:54 2013 +0100
     1.3 @@ -33,11 +33,35 @@
     1.4  #include "opto/regmask.hpp"
     1.5  
     1.6  class Block;
     1.7 -class LRG_List;
     1.8  class PhaseCFG;
     1.9  class VectorSet;
    1.10  class IndexSet;
    1.11  
    1.12 +//------------------------------LRG_List---------------------------------------
    1.13 +// Map Node indices to Live RanGe indices.
    1.14 +// Array lookup in the optimized case.
    1.15 +class LRG_List : public ResourceObj {
    1.16 +  friend class VMStructs;
    1.17 +  uint _cnt, _max;
    1.18 +  uint* _lidxs;
    1.19 +  ReallocMark _nesting;         // assertion check for reallocations
    1.20 +public:
    1.21 +  LRG_List( uint max );
    1.22 +
    1.23 +  uint lookup( uint nidx ) const {
    1.24 +    return _lidxs[nidx];
    1.25 +  }
    1.26 +  uint operator[] (uint nidx) const { return lookup(nidx); }
    1.27 +
    1.28 +  void map( uint nidx, uint lidx ) {
    1.29 +    assert( nidx < _cnt, "oob" );
    1.30 +    _lidxs[nidx] = lidx;
    1.31 +  }
    1.32 +  void extend( uint nidx, uint lidx );
    1.33 +
    1.34 +  uint Size() const { return _cnt; }
    1.35 +};
    1.36 +
    1.37  //------------------------------PhaseLive--------------------------------------
    1.38  // Compute live-in/live-out
    1.39  class PhaseLive : public Phase {

mercurial