< prev index next >

src/share/vm/opto/compile.hpp

Print this page
rev 8472 : SIMD: fixing bug in alignment - invariant and scale. Also A LOT of tracing + fixing long lines.


 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(); }
 132   int gen(const void* k)          const          { return gen(_2_node_idx_t(k)); }
 133   int max_gen()                   const;
 134   void clone(Node* old, Node* nnn, int gen);
 135   void verify_insert_and_clone(Node* old, Node* nnn, int gen);
 136   void dump(node_idx_t key)       const;
 137 
 138   int  clone_idx() const                         { return _clone_idx; }
 139   void set_clone_idx(int x)                      { _clone_idx = x; }
 140   bool is_debug()                 const          { return _debug; }
 141   void set_debug(bool debug)                     { _debug = debug; }
 142   static const char* debug_option_name;



 143 };
 144 
 145 //------------------------------Compile----------------------------------------
 146 // This class defines a top-level Compiler invocation.
 147 
 148 class Compile : public Phase {
 149   friend class VMStructs;
 150 
 151  public:
 152   // Fixed alias indexes.  (See also MergeMemNode.)
 153   enum {
 154     AliasIdxTop = 1,  // pseudo-index, aliases to nothing (used as sentinel value)
 155     AliasIdxBot = 2,  // pseudo-index, aliases to everything
 156     AliasIdxRaw = 3   // hard-wired index for TypeRawPtr::BOTTOM
 157   };
 158 
 159   // Variant of TraceTime(NULL, &_t_accumulator, CITime);
 160   // Integrated with logging.  If logging is turned on, and CITimeVerbose is true,
 161   // then brackets are put into the log, with time stamps and node counts.
 162   // (The time collection itself is always conditionalized on CITime.)




 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(); }
 132   int gen(const void* k)          const          { return gen(_2_node_idx_t(k)); }
 133   int max_gen()                   const;
 134   void clone(Node* old, Node* nnn, int gen);
 135   void verify_insert_and_clone(Node* old, Node* nnn, int gen);
 136   void dump(node_idx_t key)       const;
 137 
 138   int  clone_idx() const                         { return _clone_idx; }
 139   void set_clone_idx(int x)                      { _clone_idx = x; }
 140   bool is_debug()                 const          { return _debug; }
 141   void set_debug(bool debug)                     { _debug = debug; }
 142   static const char* debug_option_name;
 143 
 144   bool same_idx(node_idx_t k1, node_idx_t k2)  const { return idx(k1) == idx(k2); }
 145   bool same_gen(node_idx_t k1, node_idx_t k2)  const { return gen(k1) == gen(k2); }
 146 };
 147 
 148 //------------------------------Compile----------------------------------------
 149 // This class defines a top-level Compiler invocation.
 150 
 151 class Compile : public Phase {
 152   friend class VMStructs;
 153 
 154  public:
 155   // Fixed alias indexes.  (See also MergeMemNode.)
 156   enum {
 157     AliasIdxTop = 1,  // pseudo-index, aliases to nothing (used as sentinel value)
 158     AliasIdxBot = 2,  // pseudo-index, aliases to everything
 159     AliasIdxRaw = 3   // hard-wired index for TypeRawPtr::BOTTOM
 160   };
 161 
 162   // Variant of TraceTime(NULL, &_t_accumulator, CITime);
 163   // Integrated with logging.  If logging is turned on, and CITimeVerbose is true,
 164   // then brackets are put into the log, with time stamps and node counts.
 165   // (The time collection itself is always conditionalized on CITime.)


< prev index next >