# HG changeset patch # User neliasso # Date 1363168614 -3600 # Node ID 056ab43544a488986234a3c9803e24ef6cdd4515 # Parent 8196357e95b50e57554d9112ce51af90d9c40869 8009721: Make PhaseLive independent from regalloc Summary: Moved class definition of LRG_List from chaitin.hpp to live.hpp Reviewed-by: kvn, rbackman, roland Contributed-by: niclas.adlertz@oracle.com diff -r 8196357e95b5 -r 056ab43544a4 src/share/vm/opto/chaitin.hpp --- a/src/share/vm/opto/chaitin.hpp Fri Mar 08 08:22:18 2013 -0800 +++ b/src/share/vm/opto/chaitin.hpp Wed Mar 13 10:56:54 2013 +0100 @@ -187,31 +187,6 @@ #endif }; -//------------------------------LRG_List--------------------------------------- -// Map Node indices to Live RanGe indices. -// Array lookup in the optimized case. -class LRG_List : public ResourceObj { - friend class VMStructs; - uint _cnt, _max; - uint* _lidxs; - ReallocMark _nesting; // assertion check for reallocations -public: - LRG_List( uint max ); - - uint lookup( uint nidx ) const { - return _lidxs[nidx]; - } - uint operator[] (uint nidx) const { return lookup(nidx); } - - void map( uint nidx, uint lidx ) { - assert( nidx < _cnt, "oob" ); - _lidxs[nidx] = lidx; - } - void extend( uint nidx, uint lidx ); - - uint Size() const { return _cnt; } -}; - //------------------------------IFG-------------------------------------------- // InterFerence Graph // An undirected graph implementation. Created with a fixed number of diff -r 8196357e95b5 -r 056ab43544a4 src/share/vm/opto/live.hpp --- a/src/share/vm/opto/live.hpp Fri Mar 08 08:22:18 2013 -0800 +++ b/src/share/vm/opto/live.hpp Wed Mar 13 10:56:54 2013 +0100 @@ -33,11 +33,35 @@ #include "opto/regmask.hpp" class Block; -class LRG_List; class PhaseCFG; class VectorSet; class IndexSet; +//------------------------------LRG_List--------------------------------------- +// Map Node indices to Live RanGe indices. +// Array lookup in the optimized case. +class LRG_List : public ResourceObj { + friend class VMStructs; + uint _cnt, _max; + uint* _lidxs; + ReallocMark _nesting; // assertion check for reallocations +public: + LRG_List( uint max ); + + uint lookup( uint nidx ) const { + return _lidxs[nidx]; + } + uint operator[] (uint nidx) const { return lookup(nidx); } + + void map( uint nidx, uint lidx ) { + assert( nidx < _cnt, "oob" ); + _lidxs[nidx] = lidx; + } + void extend( uint nidx, uint lidx ); + + uint Size() const { return _cnt; } +}; + //------------------------------PhaseLive-------------------------------------- // Compute live-in/live-out class PhaseLive : public Phase {