< prev index next >

src/share/vm/opto/compile.hpp

Print this page
rev 9088 : 8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux.
Reviewed-by: stuefe, coleenp


  91  private:
  92   uint64_t  _idx_clone_orig;
  93  public:
  94 
  95   void set_idx(node_idx_t idx) {
  96     _idx_clone_orig = _idx_clone_orig & CONST64(0xFFFFFFFF00000000) | idx;
  97   }
  98   node_idx_t idx() const { return (node_idx_t)(_idx_clone_orig & 0xFFFFFFFF); }
  99 
 100   void set_gen(int generation) {
 101     uint64_t  g = (uint64_t)generation << 32;
 102     _idx_clone_orig = _idx_clone_orig & 0xFFFFFFFF | g;
 103   }
 104   int gen() const { return (int)(_idx_clone_orig >> 32); }
 105 
 106   void set(uint64_t x) {  _idx_clone_orig = x; }
 107   void set(node_idx_t x, int g) {  set_idx(x); set_gen(g); }
 108   uint64_t get() const { return _idx_clone_orig; }
 109 
 110   NodeCloneInfo(uint64_t idx_clone_orig) : _idx_clone_orig(idx_clone_orig) {}
 111   NodeCloneInfo(node_idx_t x, int g) {set(x, g);}
 112 
 113   void dump() const;
 114 };
 115 
 116 class CloneMap {
 117   friend class Compile;
 118  private:
 119   bool      _debug;
 120   Dict*     _dict;
 121   int       _clone_idx;   // current cloning iteration/generation in loop unroll
 122  public:
 123   void*     _2p(node_idx_t key)   const          { return (void*)(intptr_t)key; } // 2 conversion functions to make gcc happy
 124   node_idx_t _2_node_idx_t(const void* k) const  { return (node_idx_t)(intptr_t)k; }
 125   Dict*     dict()                const          { return _dict; }
 126   void insert(node_idx_t key, uint64_t val)      { assert(_dict->operator[](_2p(key)) == NULL, "key existed"); _dict->Insert(_2p(key), (void*)val); }
 127   void insert(node_idx_t key, NodeCloneInfo& ci) { insert(key, ci.get()); }
 128   void remove(node_idx_t key)                    { _dict->Delete(_2p(key)); }
 129   uint64_t value(node_idx_t key)  const          { return (uint64_t)_dict->operator[](_2p(key)); }
 130   node_idx_t idx(node_idx_t key)  const          { return NodeCloneInfo(value(key)).idx(); }
 131   int gen(node_idx_t key)         const          { return NodeCloneInfo(value(key)).gen(); }




  91  private:
  92   uint64_t _idx_clone_orig;
  93  public:
  94 
  95   void set_idx(node_idx_t idx) {
  96     _idx_clone_orig = _idx_clone_orig & CONST64(0xFFFFFFFF00000000) | idx;
  97   }
  98   node_idx_t idx() const { return (node_idx_t)(_idx_clone_orig & 0xFFFFFFFF); }
  99 
 100   void set_gen(int generation) {
 101     uint64_t g = (uint64_t)generation << 32;
 102     _idx_clone_orig = _idx_clone_orig & 0xFFFFFFFF | g;
 103   }
 104   int gen() const { return (int)(_idx_clone_orig >> 32); }
 105 
 106   void set(uint64_t x) { _idx_clone_orig = x; }
 107   void set(node_idx_t x, int g) { set_idx(x); set_gen(g); }
 108   uint64_t get() const { return _idx_clone_orig; }
 109 
 110   NodeCloneInfo(uint64_t idx_clone_orig) : _idx_clone_orig(idx_clone_orig) {}
 111   NodeCloneInfo(node_idx_t x, int g) : _idx_clone_orig(0) { set(x, g); }
 112 
 113   void dump() const;
 114 };
 115 
 116 class CloneMap {
 117   friend class Compile;
 118  private:
 119   bool      _debug;
 120   Dict*     _dict;
 121   int       _clone_idx;   // current cloning iteration/generation in loop unroll
 122  public:
 123   void*     _2p(node_idx_t key)   const          { return (void*)(intptr_t)key; } // 2 conversion functions to make gcc happy
 124   node_idx_t _2_node_idx_t(const void* k) const  { return (node_idx_t)(intptr_t)k; }
 125   Dict*     dict()                const          { return _dict; }
 126   void insert(node_idx_t key, uint64_t val)      { assert(_dict->operator[](_2p(key)) == NULL, "key existed"); _dict->Insert(_2p(key), (void*)val); }
 127   void insert(node_idx_t key, NodeCloneInfo& ci) { insert(key, ci.get()); }
 128   void remove(node_idx_t key)                    { _dict->Delete(_2p(key)); }
 129   uint64_t value(node_idx_t key)  const          { return (uint64_t)_dict->operator[](_2p(key)); }
 130   node_idx_t idx(node_idx_t key)  const          { return NodeCloneInfo(value(key)).idx(); }
 131   int gen(node_idx_t key)         const          { return NodeCloneInfo(value(key)).gen(); }


< prev index next >