comparison src/share/vm/opto/live.hpp @ 8883:b9a918201d47

Merge with hsx25
author Gilles Duboscq <duboscq@ssw.jku.at>
date Sat, 06 Apr 2013 20:04:06 +0200
parents 056ab43544a4
children 8373c19be854
comparison
equal deleted inserted replaced
8660:d47b52b0ff68 8883:b9a918201d47
31 #include "opto/indexSet.hpp" 31 #include "opto/indexSet.hpp"
32 #include "opto/phase.hpp" 32 #include "opto/phase.hpp"
33 #include "opto/regmask.hpp" 33 #include "opto/regmask.hpp"
34 34
35 class Block; 35 class Block;
36 class LRG_List;
37 class PhaseCFG; 36 class PhaseCFG;
38 class VectorSet; 37 class VectorSet;
39 class IndexSet; 38 class IndexSet;
39
40 //------------------------------LRG_List---------------------------------------
41 // Map Node indices to Live RanGe indices.
42 // Array lookup in the optimized case.
43 class LRG_List : public ResourceObj {
44 friend class VMStructs;
45 uint _cnt, _max;
46 uint* _lidxs;
47 ReallocMark _nesting; // assertion check for reallocations
48 public:
49 LRG_List( uint max );
50
51 uint lookup( uint nidx ) const {
52 return _lidxs[nidx];
53 }
54 uint operator[] (uint nidx) const { return lookup(nidx); }
55
56 void map( uint nidx, uint lidx ) {
57 assert( nidx < _cnt, "oob" );
58 _lidxs[nidx] = lidx;
59 }
60 void extend( uint nidx, uint lidx );
61
62 uint Size() const { return _cnt; }
63 };
40 64
41 //------------------------------PhaseLive-------------------------------------- 65 //------------------------------PhaseLive--------------------------------------
42 // Compute live-in/live-out 66 // Compute live-in/live-out
43 class PhaseLive : public Phase { 67 class PhaseLive : public Phase {
44 // Array of Sets of values live at the start of a block. 68 // Array of Sets of values live at the start of a block.