src/share/vm/runtime/deoptimization.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-comp-code-aging Sdiff src/share/vm/runtime

src/share/vm/runtime/deoptimization.hpp

Print this page




  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_speculate_null_check,  // saw unexpected null from type speculation
  64     Reason_rtm_state_change,      // rtm state change detected

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




  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_speculate_null_check,  // saw unexpected null from type speculation
  64     Reason_rtm_state_change,      // rtm state change detected
  65     Reason_profile_aging,         // age of the code has reached the limit
  66     Reason_LIMIT,
  67     // Note:  Keep this enum in sync. with _trap_reason_name.
  68     Reason_RECORDED_LIMIT = Reason_bimorphic  // some are not recorded per bc
  69     // Note:  Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
  70     // DataLayout::trap_bits.  This dependency is enforced indirectly
  71     // via asserts, to avoid excessive direct header-to-header dependencies.
  72     // See Deoptimization::trap_state_reason and class DataLayout.
  73   };
  74 
  75   // What action must be taken by the runtime?
  76   enum DeoptAction {
  77     Action_none,                  // just interpret, do not invalidate nmethod
  78     Action_maybe_recompile,       // recompile the nmethod; need not invalidate
  79     Action_reinterpret,           // invalidate the nmethod, reset IC, maybe recompile
  80     Action_make_not_entrant,      // invalidate the nmethod, recompile (probably)
  81     Action_make_not_compilable,   // invalidate the nmethod and do not compile
  82     Action_LIMIT
  83     // Note:  Keep this enum in sync. with _trap_action_name.
  84   };
  85 


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