< prev index next >

src/share/vm/opto/live.hpp

Print this page

        

*** 44,54 **** //------------------------------PhaseLive-------------------------------------- // Compute live-in/live-out class PhaseLive : public Phase { // Array of Sets of values live at the start of a block. // Indexed by block pre-order number. ! IndexSet *_live; // Array of Sets of values defined locally in the block // Indexed by block pre-order number. IndexSet *_defs; --- 44,55 ---- //------------------------------PhaseLive-------------------------------------- // Compute live-in/live-out class PhaseLive : public Phase { // Array of Sets of values live at the start of a block. // Indexed by block pre-order number. ! IndexSet *_live; // live out ! IndexSet *_livein; // live in // Array of Sets of values defined locally in the block // Indexed by block pre-order number. IndexSet *_defs;
*** 60,86 **** const PhaseCFG &_cfg; // Basic blocks const LRG_List &_names; // Mapping from Nodes to live ranges uint _maxlrg; // Largest live-range number Arena *_arena; IndexSet *getset( Block *p ); IndexSet *getfreeset( ); ! void freeset( const Block *p ); void add_liveout( Block *p, uint r, VectorSet &first_pass ); void add_liveout( Block *p, IndexSet *lo, VectorSet &first_pass ); public: ! PhaseLive(const PhaseCFG &cfg, const LRG_List &names, Arena *arena); ~PhaseLive() {} // Compute liveness info void compute(uint maxlrg); // Reset arena storage void reset() { _live = NULL; } // Return the live-out set for this block IndexSet *live( const Block * b ) { return &_live[b->_pre_order-1]; } #ifndef PRODUCT void dump( const Block *b ) const; void stats(uint iters) const; #endif --- 61,90 ---- const PhaseCFG &_cfg; // Basic blocks const LRG_List &_names; // Mapping from Nodes to live ranges uint _maxlrg; // Largest live-range number Arena *_arena; + bool _keep_deltas; // Retain live in information IndexSet *getset( Block *p ); IndexSet *getfreeset( ); ! void freeset( Block *p ); void add_liveout( Block *p, uint r, VectorSet &first_pass ); void add_liveout( Block *p, IndexSet *lo, VectorSet &first_pass ); + void add_livein( Block *p, IndexSet *lo ); public: ! PhaseLive(const PhaseCFG &cfg, const LRG_List &names, Arena *arena, bool keep_deltas); ~PhaseLive() {} // Compute liveness info void compute(uint maxlrg); // Reset arena storage void reset() { _live = NULL; } // Return the live-out set for this block IndexSet *live( const Block * b ) { return &_live[b->_pre_order-1]; } + IndexSet *livein( const Block * b ) { return &_livein[b->_pre_order - 1]; } #ifndef PRODUCT void dump( const Block *b ) const; void stats(uint iters) const; #endif
< prev index next >