8009721: Make PhaseLive independent from regalloc
Moved class definition of LRG_List from chaitin.hpp to live.hpp Reviewed-by: kvn, rbackman, roland
This commit is contained in:
parent
5d0afe6210
commit
b26473a6cf
@ -187,31 +187,6 @@ public:
|
||||
#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
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user