src/share/vm/runtime/deoptimization.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6614597 Sdiff src/share/vm/runtime

src/share/vm/runtime/deoptimization.hpp

Print this page




  30 class Deoptimization : AllStatic {
  31  public:
  32   // What condition caused the deoptimization?
  33   enum DeoptReason {
  34     Reason_many = -1,             // indicates presence of several reasons
  35     Reason_none = 0,              // indicates absence of a relevant deopt.
  36     Reason_null_check,            // saw unexpected null or zero divisor (@bci)
  37     Reason_null_assert,           // saw unexpected non-null or non-zero (@bci)
  38     Reason_range_check,           // saw unexpected array index (@bci)
  39     Reason_class_check,           // saw unexpected object class (@bci)
  40     Reason_array_check,           // saw unexpected array class (aastore @bci)
  41     Reason_intrinsic,             // saw unexpected operand to intrinsic (@bci)
  42     Reason_unloaded,              // unloaded class or constant pool entry
  43     Reason_uninitialized,         // bad class state (uninitialized)
  44     Reason_unreached,             // code is not reached, compiler
  45     Reason_unhandled,             // arbitrary compiler limitation
  46     Reason_constraint,            // arbitrary runtime constraint violated
  47     Reason_div0_check,            // a null_check due to division by zero
  48     Reason_age,                   // nmethod too old; tier threshold reached
  49     Reason_predicate,             // compiler generated predicate failed

  50     Reason_LIMIT,
  51     // Note:  Keep this enum in sync. with _trap_reason_name.
  52     Reason_RECORDED_LIMIT = Reason_unloaded   // some are not recorded per bc
  53     // Note:  Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
  54     // DataLayout::trap_bits.  This dependency is enforced indirectly
  55     // via asserts, to avoid excessive direct header-to-header dependencies.
  56     // See Deoptimization::trap_state_reason and class DataLayout.
  57   };
  58 
  59   // What action must be taken by the runtime?
  60   enum DeoptAction {
  61     Action_none,                  // just interpret, do not invalidate nmethod
  62     Action_maybe_recompile,       // recompile the nmethod; need not invalidate
  63     Action_reinterpret,           // invalidate the nmethod, reset IC, maybe recompile
  64     Action_make_not_entrant,      // invalidate the nmethod, recompile (probably)
  65     Action_make_not_compilable,   // invalidate the nmethod and do not compile
  66     Action_LIMIT
  67     // Note:  Keep this enum in sync. with _trap_action_name.
  68   };
  69 




  30 class Deoptimization : AllStatic {
  31  public:
  32   // What condition caused the deoptimization?
  33   enum DeoptReason {
  34     Reason_many = -1,             // indicates presence of several reasons
  35     Reason_none = 0,              // indicates absence of a relevant deopt.
  36     Reason_null_check,            // saw unexpected null or zero divisor (@bci)
  37     Reason_null_assert,           // saw unexpected non-null or non-zero (@bci)
  38     Reason_range_check,           // saw unexpected array index (@bci)
  39     Reason_class_check,           // saw unexpected object class (@bci)
  40     Reason_array_check,           // saw unexpected array class (aastore @bci)
  41     Reason_intrinsic,             // saw unexpected operand to intrinsic (@bci)
  42     Reason_unloaded,              // unloaded class or constant pool entry
  43     Reason_uninitialized,         // bad class state (uninitialized)
  44     Reason_unreached,             // code is not reached, compiler
  45     Reason_unhandled,             // arbitrary compiler limitation
  46     Reason_constraint,            // arbitrary runtime constraint violated
  47     Reason_div0_check,            // a null_check due to division by zero
  48     Reason_age,                   // nmethod too old; tier threshold reached
  49     Reason_predicate,             // compiler generated predicate failed
  50     Reason_bimorphic,             // failure of bimorphic inlining
  51     Reason_LIMIT,
  52     // Note:  Keep this enum in sync. with _trap_reason_name.
  53     Reason_RECORDED_LIMIT = Reason_unloaded   // some are not recorded per bc
  54     // Note:  Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
  55     // DataLayout::trap_bits.  This dependency is enforced indirectly
  56     // via asserts, to avoid excessive direct header-to-header dependencies.
  57     // See Deoptimization::trap_state_reason and class DataLayout.
  58   };
  59 
  60   // What action must be taken by the runtime?
  61   enum DeoptAction {
  62     Action_none,                  // just interpret, do not invalidate nmethod
  63     Action_maybe_recompile,       // recompile the nmethod; need not invalidate
  64     Action_reinterpret,           // invalidate the nmethod, reset IC, maybe recompile
  65     Action_make_not_entrant,      // invalidate the nmethod, recompile (probably)
  66     Action_make_not_compilable,   // invalidate the nmethod and do not compile
  67     Action_LIMIT
  68     // Note:  Keep this enum in sync. with _trap_action_name.
  69   };
  70 


src/share/vm/runtime/deoptimization.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File