< prev index next >

src/hotspot/share/oops/methodData.hpp

Print this page




1963   Method* _method;
1964 
1965   // Size of this oop in bytes
1966   int _size;
1967 
1968   // Cached hint for bci_to_dp and bci_to_data
1969   int _hint_di;
1970 
1971   Mutex _extra_data_lock;
1972 
1973   MethodData(const methodHandle& method, int size, TRAPS);
1974 public:
1975   static MethodData* allocate(ClassLoaderData* loader_data, const methodHandle& method, TRAPS);
1976   MethodData() : _extra_data_lock(Monitor::leaf, "MDO extra data lock") {}; // For ciMethodData
1977 
1978   bool is_methodData() const volatile { return true; }
1979   void initialize();
1980 
1981   // Whole-method sticky bits and flags
1982   enum {
1983     _trap_hist_limit    = 24 JVMCI_ONLY(+5),   // decoupled from Deoptimization::Reason_LIMIT
1984     _trap_hist_mask     = max_jubyte,
1985     _extra_data_count   = 4     // extra DataLayout headers, for trap history
1986   }; // Public flag values
1987 private:
1988   uint _nof_decompiles;             // count of all nmethod removals
1989   uint _nof_overflow_recompiles;    // recompile count, excluding recomp. bits
1990   uint _nof_overflow_traps;         // trap count, excluding _trap_hist
1991   union {
1992     intptr_t _align;
1993     u1 _array[JVMCI_ONLY(2 *) _trap_hist_limit];
1994   } _trap_hist;
1995 
1996   // Support for interprocedural escape analysis, from Thomas Kotzmann.
1997   intx              _eflags;          // flags on escape information
1998   intx              _arg_local;       // bit set of non-escaping arguments
1999   intx              _arg_stack;       // bit set of stack-allocatable arguments
2000   intx              _arg_returned;    // bit set of returned arguments
2001 
2002   int _creation_mileage;              // method mileage at MDO creation
2003 




1963   Method* _method;
1964 
1965   // Size of this oop in bytes
1966   int _size;
1967 
1968   // Cached hint for bci_to_dp and bci_to_data
1969   int _hint_di;
1970 
1971   Mutex _extra_data_lock;
1972 
1973   MethodData(const methodHandle& method, int size, TRAPS);
1974 public:
1975   static MethodData* allocate(ClassLoaderData* loader_data, const methodHandle& method, TRAPS);
1976   MethodData() : _extra_data_lock(Monitor::leaf, "MDO extra data lock") {}; // For ciMethodData
1977 
1978   bool is_methodData() const volatile { return true; }
1979   void initialize();
1980 
1981   // Whole-method sticky bits and flags
1982   enum {
1983     _trap_hist_limit    = 25 JVMCI_ONLY(+5),   // decoupled from Deoptimization::Reason_LIMIT
1984     _trap_hist_mask     = max_jubyte,
1985     _extra_data_count   = 4     // extra DataLayout headers, for trap history
1986   }; // Public flag values
1987 private:
1988   uint _nof_decompiles;             // count of all nmethod removals
1989   uint _nof_overflow_recompiles;    // recompile count, excluding recomp. bits
1990   uint _nof_overflow_traps;         // trap count, excluding _trap_hist
1991   union {
1992     intptr_t _align;
1993     u1 _array[JVMCI_ONLY(2 *) _trap_hist_limit];
1994   } _trap_hist;
1995 
1996   // Support for interprocedural escape analysis, from Thomas Kotzmann.
1997   intx              _eflags;          // flags on escape information
1998   intx              _arg_local;       // bit set of non-escaping arguments
1999   intx              _arg_stack;       // bit set of stack-allocatable arguments
2000   intx              _arg_returned;    // bit set of returned arguments
2001 
2002   int _creation_mileage;              // method mileage at MDO creation
2003 


< prev index next >