hotspot/src/share/vm/opto/chaitin.hpp
changeset 15944 095248beb690
parent 13520 a1ba7784ef54
child 17013 22a05c7f3314
equal deleted inserted replaced
15924:d01b3a588e24 15944:095248beb690
   185 #ifndef PRODUCT
   185 #ifndef PRODUCT
   186   void dump( ) const;
   186   void dump( ) const;
   187 #endif
   187 #endif
   188 };
   188 };
   189 
   189 
   190 //------------------------------LRG_List---------------------------------------
       
   191 // Map Node indices to Live RanGe indices.
       
   192 // Array lookup in the optimized case.
       
   193 class LRG_List : public ResourceObj {
       
   194   friend class VMStructs;
       
   195   uint _cnt, _max;
       
   196   uint* _lidxs;
       
   197   ReallocMark _nesting;         // assertion check for reallocations
       
   198 public:
       
   199   LRG_List( uint max );
       
   200 
       
   201   uint lookup( uint nidx ) const {
       
   202     return _lidxs[nidx];
       
   203   }
       
   204   uint operator[] (uint nidx) const { return lookup(nidx); }
       
   205 
       
   206   void map( uint nidx, uint lidx ) {
       
   207     assert( nidx < _cnt, "oob" );
       
   208     _lidxs[nidx] = lidx;
       
   209   }
       
   210   void extend( uint nidx, uint lidx );
       
   211 
       
   212   uint Size() const { return _cnt; }
       
   213 };
       
   214 
       
   215 //------------------------------IFG--------------------------------------------
   190 //------------------------------IFG--------------------------------------------
   216 //                         InterFerence Graph
   191 //                         InterFerence Graph
   217 // An undirected graph implementation.  Created with a fixed number of
   192 // An undirected graph implementation.  Created with a fixed number of
   218 // vertices.  Edges can be added & tested.  Vertices can be removed, then
   193 // vertices.  Edges can be added & tested.  Vertices can be removed, then
   219 // added back later with all edges intact.  Can add edges between one vertex
   194 // added back later with all edges intact.  Can add edges between one vertex