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 {