src/share/vm/opto/compile.hpp

Print this page




  80 class Unique_Node_List;
  81 class nmethod;
  82 class WarmCallInfo;
  83 class Node_Stack;
  84 struct Final_Reshape_Counts;
  85 
  86 //------------------------------Compile----------------------------------------
  87 // This class defines a top-level Compiler invocation.
  88 
  89 class Compile : public Phase {
  90   friend class VMStructs;
  91 
  92  public:
  93   // Fixed alias indexes.  (See also MergeMemNode.)
  94   enum {
  95     AliasIdxTop = 1,  // pseudo-index, aliases to nothing (used as sentinel value)
  96     AliasIdxBot = 2,  // pseudo-index, aliases to everything
  97     AliasIdxRaw = 3   // hard-wired index for TypeRawPtr::BOTTOM
  98   };
  99 
 100   // Variant of TraceTime(NULL, &_t_accumulator, TimeCompiler);
 101   // Integrated with logging.  If logging is turned on, and dolog is true,
 102   // then brackets are put into the log, with time stamps and node counts.
 103   // (The time collection itself is always conditionalized on TimeCompiler.)
 104   class TracePhase : public TraceTime {
 105    private:
 106     Compile*    C;
 107     CompileLog* _log;
 108     const char* _phase_name;
 109     bool _dolog;
 110    public:
 111     TracePhase(const char* name, elapsedTimer* accumulator, bool dolog);
 112     ~TracePhase();
 113   };
 114 
 115   // Information per category of alias (memory slice)
 116   class AliasType {
 117    private:
 118     friend class Compile;
 119 
 120     int             _index;         // unique index, used with MergeMemNode
 121     const TypePtr*  _adr_type;      // normalized address type
 122     ciField*        _field;         // relevant instance field, or null if none
 123     const Type*     _element;       // relevant array element type, or null if none
 124     bool            _is_rewritable; // false if the memory is write-once only
 125     int             _general_index; // if this is type is an instance, the general
 126                                     // type that this is an instance of
 127 
 128     void Init(int i, const TypePtr* at);
 129 
 130    public:
 131     int             index()         const { return _index; }




  80 class Unique_Node_List;
  81 class nmethod;
  82 class WarmCallInfo;
  83 class Node_Stack;
  84 struct Final_Reshape_Counts;
  85 
  86 //------------------------------Compile----------------------------------------
  87 // This class defines a top-level Compiler invocation.
  88 
  89 class Compile : public Phase {
  90   friend class VMStructs;
  91 
  92  public:
  93   // Fixed alias indexes.  (See also MergeMemNode.)
  94   enum {
  95     AliasIdxTop = 1,  // pseudo-index, aliases to nothing (used as sentinel value)
  96     AliasIdxBot = 2,  // pseudo-index, aliases to everything
  97     AliasIdxRaw = 3   // hard-wired index for TypeRawPtr::BOTTOM
  98   };
  99 
 100   // Variant of TraceTime(NULL, &_t_accumulator, CITime);
 101   // Integrated with logging.  If logging is turned on, and CITimeVerbose is true,
 102   // then brackets are put into the log, with time stamps and node counts.
 103   // (The time collection itself is always conditionalized on CITime.)
 104   class TracePhase : public TraceTime {
 105    private:
 106     Compile*    C;
 107     CompileLog* _log;
 108     const char* _phase_name;
 109     bool _dolog;
 110    public:
 111     TracePhase(const char* name, elapsedTimer* accumulator);
 112     ~TracePhase();
 113   };
 114 
 115   // Information per category of alias (memory slice)
 116   class AliasType {
 117    private:
 118     friend class Compile;
 119 
 120     int             _index;         // unique index, used with MergeMemNode
 121     const TypePtr*  _adr_type;      // normalized address type
 122     ciField*        _field;         // relevant instance field, or null if none
 123     const Type*     _element;       // relevant array element type, or null if none
 124     bool            _is_rewritable; // false if the memory is write-once only
 125     int             _general_index; // if this is type is an instance, the general
 126                                     // type that this is an instance of
 127 
 128     void Init(int i, const TypePtr* at);
 129 
 130    public:
 131     int             index()         const { return _index; }