src/share/vm/runtime/deoptimization.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/deoptimization.hpp Tue Mar 25 15:47:10 2014
--- new/src/share/vm/runtime/deoptimization.hpp Tue Mar 25 15:47:09 2014
*** 58,67 ****
--- 58,68 ----
Reason_div0_check, // a null_check due to division by zero
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_rtm_state_change, // rtm state change detected
Reason_LIMIT,
// Note: Keep this enum in sync. with _trap_reason_name.
Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc
// Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
*** 313,333 ****
--- 314,344 ----
return reason;
else if (reason == Reason_div0_check) // null check due to divide-by-zero?
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
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;
}
+ static DeoptReason reason_null_check(bool speculative) {
+ return speculative ? Deoptimization::Reason_speculate_null_check : Deoptimization::Reason_null_check;
+ }
+
+ static DeoptReason reason_class_check(bool speculative) {
+ return speculative ? Deoptimization::Reason_speculate_class_check : Deoptimization::Reason_class_check;
+ }
+
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);
src/share/vm/runtime/deoptimization.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File