Mercurial > hg > graal-compiler
comparison src/share/vm/opto/live.cpp @ 12023:d1034bd8cefc
8022284: Hide internal data structure in PhaseCFG
Summary: Hide private node to block mapping using public interface
Reviewed-by: kvn, roland
author | adlertz |
---|---|
date | Wed, 07 Aug 2013 17:56:19 +0200 |
parents | 8373c19be854 |
children | adb9a7d94cb5 |
comparison
equal
deleted
inserted
replaced
12004:71526a36ebb4 | 12023:d1034bd8cefc |
---|---|
99 use->remove( r ); | 99 use->remove( r ); |
100 uint cnt = n->req(); | 100 uint cnt = n->req(); |
101 for( uint k=1; k<cnt; k++ ) { | 101 for( uint k=1; k<cnt; k++ ) { |
102 Node *nk = n->in(k); | 102 Node *nk = n->in(k); |
103 uint nkidx = nk->_idx; | 103 uint nkidx = nk->_idx; |
104 if( _cfg._bbs[nkidx] != b ) { | 104 if (_cfg.get_block_for_node(nk) != b) { |
105 uint u = _names[nkidx]; | 105 uint u = _names[nkidx]; |
106 use->insert( u ); | 106 use->insert( u ); |
107 DEBUG_ONLY(def_outside->insert( u );) | 107 DEBUG_ONLY(def_outside->insert( u );) |
108 } | 108 } |
109 } | 109 } |
119 use->remove( r ); | 119 use->remove( r ); |
120 } | 120 } |
121 | 121 |
122 // Push these live-in things to predecessors | 122 // Push these live-in things to predecessors |
123 for( uint l=1; l<b->num_preds(); l++ ) { | 123 for( uint l=1; l<b->num_preds(); l++ ) { |
124 Block *p = _cfg._bbs[b->pred(l)->_idx]; | 124 Block *p = _cfg.get_block_for_node(b->pred(l)); |
125 add_liveout( p, use, first_pass ); | 125 add_liveout( p, use, first_pass ); |
126 | 126 |
127 // PhiNode uses go in the live-out set of prior blocks. | 127 // PhiNode uses go in the live-out set of prior blocks. |
128 for( uint k=i; k>0; k-- ) | 128 for( uint k=i; k>0; k-- ) |
129 add_liveout( p, _names[b->_nodes[k-1]->in(l)->_idx], first_pass ); | 129 add_liveout( p, _names[b->_nodes[k-1]->in(l)->_idx], first_pass ); |
140 Block *b = _worklist->pop(); | 140 Block *b = _worklist->pop(); |
141 IndexSet *delta = getset(b); | 141 IndexSet *delta = getset(b); |
142 assert( delta->count(), "missing delta set" ); | 142 assert( delta->count(), "missing delta set" ); |
143 | 143 |
144 // Add new-live-in to predecessors live-out sets | 144 // Add new-live-in to predecessors live-out sets |
145 for( uint l=1; l<b->num_preds(); l++ ) | 145 for (uint l = 1; l < b->num_preds(); l++) { |
146 add_liveout( _cfg._bbs[b->pred(l)->_idx], delta, first_pass ); | 146 Block* block = _cfg.get_block_for_node(b->pred(l)); |
147 add_liveout(block, delta, first_pass); | |
148 } | |
147 | 149 |
148 freeset(b); | 150 freeset(b); |
149 } // End of while-worklist-not-empty | 151 } // End of while-worklist-not-empty |
150 | 152 |
151 } // End of for-all-blocks-outer-loop | 153 } // End of for-all-blocks-outer-loop |