60 Reason_predicate, // compiler generated predicate failed |
60 Reason_predicate, // compiler generated predicate failed |
61 Reason_loop_limit_check, // compiler generated loop limits check failed |
61 Reason_loop_limit_check, // compiler generated loop limits check failed |
62 Reason_speculate_class_check, // saw unexpected object class from type speculation |
62 Reason_speculate_class_check, // saw unexpected object class from type speculation |
63 Reason_speculate_null_check, // saw unexpected null from type speculation |
63 Reason_speculate_null_check, // saw unexpected null from type speculation |
64 Reason_rtm_state_change, // rtm state change detected |
64 Reason_rtm_state_change, // rtm state change detected |
|
65 Reason_unstable_if, // a branch predicted always false was taken |
|
66 |
|
67 // Reason_tenured is counted separately, add normal counted Reasons above. |
|
68 // Related to MethodData::_trap_hist_limit where Reason_tenured isn't included |
65 Reason_tenured, // age of the code has reached the limit |
69 Reason_tenured, // age of the code has reached the limit |
66 Reason_LIMIT, |
70 Reason_LIMIT, |
67 // Note: Keep this enum in sync. with _trap_reason_name. |
71 // Note: Keep this enum in sync. with _trap_reason_name. |
68 Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc |
72 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 |
73 // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of |
317 return Reason_null_check; // recorded per BCI as a null check |
321 return Reason_null_check; // recorded per BCI as a null check |
318 else if (reason == Reason_speculate_class_check) |
322 else if (reason == Reason_speculate_class_check) |
319 return Reason_class_check; |
323 return Reason_class_check; |
320 else if (reason == Reason_speculate_null_check) |
324 else if (reason == Reason_speculate_null_check) |
321 return Reason_null_check; |
325 return Reason_null_check; |
|
326 else if (reason == Reason_unstable_if) |
|
327 return Reason_intrinsic; |
322 else |
328 else |
323 return Reason_none; |
329 return Reason_none; |
324 } |
330 } |
325 |
331 |
326 static bool reason_is_speculate(int reason) { |
332 static bool reason_is_speculate(int reason) { |