< prev index next >

src/share/vm/runtime/deoptimization.hpp

Print this page

        

*** 72,81 **** --- 72,82 ---- Reason_age, // nmethod too old; tier threshold reached Reason_predicate, // compiler generated predicate failed Reason_loop_limit_check, // compiler generated loop limits check failed Reason_speculate_class_check, // saw unexpected object class from type speculation Reason_speculate_null_check, // saw unexpected null from type speculation + Reason_speculate_null_assert, // saw unexpected null from type speculation Reason_rtm_state_change, // rtm state change detected Reason_unstable_if, // a branch predicted always false was taken Reason_unstable_fused_if, // fused two ifs that had each one untaken branch. One is now taken. #if INCLUDE_JVMCI Reason_aliasing, // optimistic assumption about aliasing failed
*** 363,382 **** return Reason_null_check; // recorded per BCI as a null check else if (reason == Reason_speculate_class_check) return Reason_class_check; else if (reason == Reason_speculate_null_check) return Reason_null_check; else if (reason == Reason_unstable_if) return Reason_intrinsic; else if (reason == Reason_unstable_fused_if) return Reason_range_check; else return Reason_none; } static bool reason_is_speculate(int reason) { ! if (reason == Reason_speculate_class_check || reason == Reason_speculate_null_check) { return true; } return false; } --- 364,387 ---- return Reason_null_check; // recorded per BCI as a null check else if (reason == Reason_speculate_class_check) return Reason_class_check; else if (reason == Reason_speculate_null_check) return Reason_null_check; + else if (reason == Reason_speculate_null_assert) + return Reason_null_assert; else if (reason == Reason_unstable_if) return Reason_intrinsic; else if (reason == Reason_unstable_fused_if) return Reason_range_check; else return Reason_none; } static bool reason_is_speculate(int reason) { ! if (reason == Reason_speculate_class_check || ! reason == Reason_speculate_null_check || ! reason == Reason_speculate_null_assert) { return true; } return false; }
*** 386,395 **** --- 391,404 ---- static DeoptReason reason_class_check(bool speculative) { return speculative ? Deoptimization::Reason_speculate_class_check : Deoptimization::Reason_class_check; } + static DeoptReason reason_null_assert(bool speculative) { + return speculative ? Deoptimization::Reason_speculate_null_assert : Deoptimization::Reason_null_assert; + } + static uint per_method_trap_limit(int reason) { return reason_is_speculate(reason) ? (uint)PerMethodSpecTrapLimit : (uint)PerMethodTrapLimit; } static const char* trap_reason_name(int reason);
< prev index next >