comparison src/share/vm/runtime/deoptimization.hpp @ 20439:f6f9aec27858

8030976: Untaken paths should be more vigorously pruned at highest optimization level Reviewed-by: roland, vlivanov
author rbackman
date Wed, 10 Sep 2014 12:39:11 +0200
parents 606acabe7b5c
children 43ce58b4717b
comparison
equal deleted inserted replaced
20438:166d744df0de 20439:f6f9aec27858
58 Reason_div0_check, // a null_check due to division by zero 58 Reason_div0_check, // a null_check due to division by zero
59 Reason_age, // nmethod too old; tier threshold reached 59 Reason_age, // nmethod too old; tier threshold reached
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_unstable_if, // a branch predicted always false was taken
63 Reason_rtm_state_change, // rtm state change detected 64 Reason_rtm_state_change, // rtm state change detected
64 Reason_LIMIT, 65 Reason_LIMIT,
65 // Note: Keep this enum in sync. with _trap_reason_name. 66 // Note: Keep this enum in sync. with _trap_reason_name.
66 Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc 67 Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc
67 // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of 68 // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
313 return reason; 314 return reason;
314 else if (reason == Reason_div0_check) // null check due to divide-by-zero? 315 else if (reason == Reason_div0_check) // null check due to divide-by-zero?
315 return Reason_null_check; // recorded per BCI as a null check 316 return Reason_null_check; // recorded per BCI as a null check
316 else if (reason == Reason_speculate_class_check) 317 else if (reason == Reason_speculate_class_check)
317 return Reason_class_check; 318 return Reason_class_check;
319 else if (reason == Reason_unstable_if)
320 return Reason_intrinsic;
318 else 321 else
319 return Reason_none; 322 return Reason_none;
320 } 323 }
321 324
322 static bool reason_is_speculate(int reason) { 325 static bool reason_is_speculate(int reason) {