78 IndexSet *_free_IndexSet; // Free list of same |
78 IndexSet *_free_IndexSet; // Free list of same |
79 |
79 |
80 Block_List *_worklist; // Worklist for iterative solution |
80 Block_List *_worklist; // Worklist for iterative solution |
81 |
81 |
82 const PhaseCFG &_cfg; // Basic blocks |
82 const PhaseCFG &_cfg; // Basic blocks |
83 LRG_List &_names; // Mapping from Nodes to live ranges |
83 const LRG_List &_names; // Mapping from Nodes to live ranges |
84 uint _maxlrg; // Largest live-range number |
84 uint _maxlrg; // Largest live-range number |
85 Arena *_arena; |
85 Arena *_arena; |
86 |
86 |
87 IndexSet *getset( Block *p ); |
87 IndexSet *getset( Block *p ); |
88 IndexSet *getfreeset( ); |
88 IndexSet *getfreeset( ); |
89 void freeset( const Block *p ); |
89 void freeset( const Block *p ); |
90 void add_liveout( Block *p, uint r, VectorSet &first_pass ); |
90 void add_liveout( Block *p, uint r, VectorSet &first_pass ); |
91 void add_liveout( Block *p, IndexSet *lo, VectorSet &first_pass ); |
91 void add_liveout( Block *p, IndexSet *lo, VectorSet &first_pass ); |
92 |
92 |
93 public: |
93 public: |
94 PhaseLive( const PhaseCFG &cfg, LRG_List &names, Arena *arena ); |
94 PhaseLive(const PhaseCFG &cfg, const LRG_List &names, Arena *arena); |
95 ~PhaseLive() {} |
95 ~PhaseLive() {} |
96 // Compute liveness info |
96 // Compute liveness info |
97 void compute(uint maxlrg); |
97 void compute(uint maxlrg); |
98 // Reset arena storage |
98 // Reset arena storage |
99 void reset() { _live = NULL; } |
99 void reset() { _live = NULL; } |