src/share/vm/oops/methodData.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/oops

src/share/vm/oops/methodData.hpp

Print this page
rev 8006 : 8073480: C2 should optimize explicit range checks
Summary: explicit range checks should be recognized by C2
Reviewed-by:


2039   // Back pointer to the Method*
2040   Method* _method;
2041 
2042   // Size of this oop in bytes
2043   int _size;
2044 
2045   // Cached hint for bci_to_dp and bci_to_data
2046   int _hint_di;
2047 
2048   Mutex _extra_data_lock;
2049 
2050   MethodData(methodHandle method, int size, TRAPS);
2051 public:
2052   static MethodData* allocate(ClassLoaderData* loader_data, methodHandle method, TRAPS);
2053   MethodData() : _extra_data_lock(Monitor::leaf, "MDO extra data lock") {}; // For ciMethodData
2054 
2055   bool is_methodData() const volatile { return true; }
2056 
2057   // Whole-method sticky bits and flags
2058   enum {
2059     _trap_hist_limit    = 21,   // decoupled from Deoptimization::Reason_LIMIT
2060     _trap_hist_mask     = max_jubyte,
2061     _extra_data_count   = 4     // extra DataLayout headers, for trap history
2062   }; // Public flag values
2063 private:
2064   uint _nof_decompiles;             // count of all nmethod removals
2065   uint _nof_overflow_recompiles;    // recompile count, excluding recomp. bits
2066   uint _nof_overflow_traps;         // trap count, excluding _trap_hist
2067   union {
2068     intptr_t _align;
2069     u1 _array[_trap_hist_limit];
2070   } _trap_hist;
2071 
2072   // Support for interprocedural escape analysis, from Thomas Kotzmann.
2073   intx              _eflags;          // flags on escape information
2074   intx              _arg_local;       // bit set of non-escaping arguments
2075   intx              _arg_stack;       // bit set of stack-allocatable arguments
2076   intx              _arg_returned;    // bit set of returned arguments
2077 
2078   int _creation_mileage;              // method mileage at MDO creation
2079 




2039   // Back pointer to the Method*
2040   Method* _method;
2041 
2042   // Size of this oop in bytes
2043   int _size;
2044 
2045   // Cached hint for bci_to_dp and bci_to_data
2046   int _hint_di;
2047 
2048   Mutex _extra_data_lock;
2049 
2050   MethodData(methodHandle method, int size, TRAPS);
2051 public:
2052   static MethodData* allocate(ClassLoaderData* loader_data, methodHandle method, TRAPS);
2053   MethodData() : _extra_data_lock(Monitor::leaf, "MDO extra data lock") {}; // For ciMethodData
2054 
2055   bool is_methodData() const volatile { return true; }
2056 
2057   // Whole-method sticky bits and flags
2058   enum {
2059     _trap_hist_limit    = 22,   // decoupled from Deoptimization::Reason_LIMIT
2060     _trap_hist_mask     = max_jubyte,
2061     _extra_data_count   = 4     // extra DataLayout headers, for trap history
2062   }; // Public flag values
2063 private:
2064   uint _nof_decompiles;             // count of all nmethod removals
2065   uint _nof_overflow_recompiles;    // recompile count, excluding recomp. bits
2066   uint _nof_overflow_traps;         // trap count, excluding _trap_hist
2067   union {
2068     intptr_t _align;
2069     u1 _array[_trap_hist_limit];
2070   } _trap_hist;
2071 
2072   // Support for interprocedural escape analysis, from Thomas Kotzmann.
2073   intx              _eflags;          // flags on escape information
2074   intx              _arg_local;       // bit set of non-escaping arguments
2075   intx              _arg_stack;       // bit set of stack-allocatable arguments
2076   intx              _arg_returned;    // bit set of returned arguments
2077 
2078   int _creation_mileage;              // method mileage at MDO creation
2079 


src/share/vm/oops/methodData.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File