src/share/vm/opto/chaitin.hpp

changeset 5722
8c83625e3a53
parent 5543
4b2838704fd5
child 5916
d8a449d2f5b2
     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  

mercurial