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

src/share/vm/runtime/deoptimization.hpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed


  43     Reason_none = 0,              // indicates absence of a relevant deopt.
  44     // Next 7 reasons are recorded per bytecode in DataLayout::trap_bits
  45     Reason_null_check,            // saw unexpected null or zero divisor (@bci)
  46     Reason_null_assert,           // saw unexpected non-null or non-zero (@bci)
  47     Reason_range_check,           // saw unexpected array index (@bci)
  48     Reason_class_check,           // saw unexpected object class (@bci)
  49     Reason_array_check,           // saw unexpected array class (aastore @bci)
  50     Reason_intrinsic,             // saw unexpected operand to intrinsic (@bci)
  51     Reason_bimorphic,             // saw unexpected object class in bimorphic inlining (@bci)
  52 
  53     Reason_unloaded,              // unloaded class or constant pool entry
  54     Reason_uninitialized,         // bad class state (uninitialized)
  55     Reason_unreached,             // code is not reached, compiler
  56     Reason_unhandled,             // arbitrary compiler limitation
  57     Reason_constraint,            // arbitrary runtime constraint violated
  58     Reason_div0_check,            // a null_check due to division by zero
  59     Reason_age,                   // nmethod too old; tier threshold reached
  60     Reason_predicate,             // compiler generated predicate failed
  61     Reason_loop_limit_check,      // compiler generated loop limits check failed
  62     Reason_speculate_class_check, // saw unexpected object class from type speculation

  63     Reason_LIMIT,
  64     // Note:  Keep this enum in sync. with _trap_reason_name.
  65     Reason_RECORDED_LIMIT = Reason_bimorphic  // some are not recorded per bc
  66     // Note:  Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
  67     // DataLayout::trap_bits.  This dependency is enforced indirectly
  68     // via asserts, to avoid excessive direct header-to-header dependencies.
  69     // See Deoptimization::trap_state_reason and class DataLayout.
  70   };
  71 
  72   // What action must be taken by the runtime?
  73   enum DeoptAction {
  74     Action_none,                  // just interpret, do not invalidate nmethod
  75     Action_maybe_recompile,       // recompile the nmethod; need not invalidate
  76     Action_reinterpret,           // invalidate the nmethod, reset IC, maybe recompile
  77     Action_make_not_entrant,      // invalidate the nmethod, recompile (probably)
  78     Action_make_not_compilable,   // invalidate the nmethod and do not compile
  79     Action_LIMIT
  80     // Note:  Keep this enum in sync. with _trap_action_name.
  81   };
  82 




  43     Reason_none = 0,              // indicates absence of a relevant deopt.
  44     // Next 7 reasons are recorded per bytecode in DataLayout::trap_bits
  45     Reason_null_check,            // saw unexpected null or zero divisor (@bci)
  46     Reason_null_assert,           // saw unexpected non-null or non-zero (@bci)
  47     Reason_range_check,           // saw unexpected array index (@bci)
  48     Reason_class_check,           // saw unexpected object class (@bci)
  49     Reason_array_check,           // saw unexpected array class (aastore @bci)
  50     Reason_intrinsic,             // saw unexpected operand to intrinsic (@bci)
  51     Reason_bimorphic,             // saw unexpected object class in bimorphic inlining (@bci)
  52 
  53     Reason_unloaded,              // unloaded class or constant pool entry
  54     Reason_uninitialized,         // bad class state (uninitialized)
  55     Reason_unreached,             // code is not reached, compiler
  56     Reason_unhandled,             // arbitrary compiler limitation
  57     Reason_constraint,            // arbitrary runtime constraint violated
  58     Reason_div0_check,            // a null_check due to division by zero
  59     Reason_age,                   // nmethod too old; tier threshold reached
  60     Reason_predicate,             // compiler generated predicate failed
  61     Reason_loop_limit_check,      // compiler generated loop limits check failed
  62     Reason_speculate_class_check, // saw unexpected object class from type speculation
  63     Reason_rtm_state_change,      // rtm state change detected
  64     Reason_LIMIT,
  65     // Note:  Keep this enum in sync. with _trap_reason_name.
  66     Reason_RECORDED_LIMIT = Reason_bimorphic  // some are not recorded per bc
  67     // Note:  Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
  68     // DataLayout::trap_bits.  This dependency is enforced indirectly
  69     // via asserts, to avoid excessive direct header-to-header dependencies.
  70     // See Deoptimization::trap_state_reason and class DataLayout.
  71   };
  72 
  73   // What action must be taken by the runtime?
  74   enum DeoptAction {
  75     Action_none,                  // just interpret, do not invalidate nmethod
  76     Action_maybe_recompile,       // recompile the nmethod; need not invalidate
  77     Action_reinterpret,           // invalidate the nmethod, reset IC, maybe recompile
  78     Action_make_not_entrant,      // invalidate the nmethod, recompile (probably)
  79     Action_make_not_compilable,   // invalidate the nmethod and do not compile
  80     Action_LIMIT
  81     // Note:  Keep this enum in sync. with _trap_action_name.
  82   };
  83 


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