1.1 --- a/src/share/vm/opto/chaitin.hpp Wed Sep 11 09:34:00 2013 +0200 1.2 +++ b/src/share/vm/opto/chaitin.hpp Thu Sep 12 23:13:45 2013 +0200 1.3 @@ -283,8 +283,8 @@ 1.4 1.5 // Straight out of Tarjan's union-find algorithm 1.6 uint find_compress(const Node *node) { 1.7 - uint lrg_id = find_compress(_names[node->_idx]); 1.8 - _names.map(node->_idx, lrg_id); 1.9 + uint lrg_id = find_compress(_names.at(node->_idx)); 1.10 + _names.at_put(node->_idx, lrg_id); 1.11 return lrg_id; 1.12 } 1.13 1.14 @@ -305,40 +305,40 @@ 1.15 } 1.16 1.17 uint size() const { 1.18 - return _names.Size(); 1.19 + return _names.length(); 1.20 } 1.21 1.22 uint live_range_id(uint idx) const { 1.23 - return _names[idx]; 1.24 + return _names.at(idx); 1.25 } 1.26 1.27 uint live_range_id(const Node *node) const { 1.28 - return _names[node->_idx]; 1.29 + return _names.at(node->_idx); 1.30 } 1.31 1.32 uint uf_live_range_id(uint lrg_id) const { 1.33 - return _uf_map[lrg_id]; 1.34 + return _uf_map.at(lrg_id); 1.35 } 1.36 1.37 void map(uint idx, uint lrg_id) { 1.38 - _names.map(idx, lrg_id); 1.39 + _names.at_put(idx, lrg_id); 1.40 } 1.41 1.42 void uf_map(uint dst_lrg_id, uint src_lrg_id) { 1.43 - _uf_map.map(dst_lrg_id, src_lrg_id); 1.44 + _uf_map.at_put(dst_lrg_id, src_lrg_id); 1.45 } 1.46 1.47 void extend(uint idx, uint lrg_id) { 1.48 - _names.extend(idx, lrg_id); 1.49 + _names.at_put_grow(idx, lrg_id); 1.50 } 1.51 1.52 void uf_extend(uint dst_lrg_id, uint src_lrg_id) { 1.53 - _uf_map.extend(dst_lrg_id, src_lrg_id); 1.54 + _uf_map.at_put_grow(dst_lrg_id, src_lrg_id); 1.55 } 1.56 1.57 - LiveRangeMap(uint unique) 1.58 - : _names(unique) 1.59 - , _uf_map(unique) 1.60 + LiveRangeMap(Arena* arena, uint unique) 1.61 + : _names(arena, unique, unique, 0) 1.62 + , _uf_map(arena, unique, unique, 0) 1.63 , _max_lrg_id(0) {} 1.64 1.65 uint find_id( const Node *n ) { 1.66 @@ -355,14 +355,14 @@ 1.67 void compress_uf_map_for_nodes(); 1.68 1.69 uint find(uint lidx) { 1.70 - uint uf_lidx = _uf_map[lidx]; 1.71 + uint uf_lidx = _uf_map.at(lidx); 1.72 return (uf_lidx == lidx) ? uf_lidx : find_compress(lidx); 1.73 } 1.74 1.75 // Convert a Node into a Live Range Index - a lidx 1.76 uint find(const Node *node) { 1.77 uint lidx = live_range_id(node); 1.78 - uint uf_lidx = _uf_map[lidx]; 1.79 + uint uf_lidx = _uf_map.at(lidx); 1.80 return (uf_lidx == lidx) ? uf_lidx : find_compress(node); 1.81 } 1.82 1.83 @@ -371,10 +371,10 @@ 1.84 1.85 // Like Find above, but no path compress, so bad asymptotic behavior 1.86 uint find_const(const Node *node) const { 1.87 - if(node->_idx >= _names.Size()) { 1.88 + if(node->_idx >= (uint)_names.length()) { 1.89 return 0; // not mapped, usual for debug dump 1.90 } 1.91 - return find_const(_names[node->_idx]); 1.92 + return find_const(_names.at(node->_idx)); 1.93 } 1.94 }; 1.95