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
|