comparison src/share/vm/runtime/deoptimization.hpp @ 3345:bad7ecd0b6ed

5091921: Sign flip issues in loop optimizer Summary: Fix integer overflow problem in the code generated by loop optimizer. Reviewed-by: never
author kvn
date Wed, 04 May 2011 13:12:42 -0700
parents 1d1603768966
children 3d2ab563047a
comparison
equal deleted inserted replaced
3344:0139aac70fb5 3345:bad7ecd0b6ed
54 Reason_unhandled, // arbitrary compiler limitation 54 Reason_unhandled, // arbitrary compiler limitation
55 Reason_constraint, // arbitrary runtime constraint violated 55 Reason_constraint, // arbitrary runtime constraint violated
56 Reason_div0_check, // a null_check due to division by zero 56 Reason_div0_check, // a null_check due to division by zero
57 Reason_age, // nmethod too old; tier threshold reached 57 Reason_age, // nmethod too old; tier threshold reached
58 Reason_predicate, // compiler generated predicate failed 58 Reason_predicate, // compiler generated predicate failed
59 Reason_loop_limit_check, // compiler generated loop limits check failed
59 Reason_LIMIT, 60 Reason_LIMIT,
60 // Note: Keep this enum in sync. with _trap_reason_name. 61 // Note: Keep this enum in sync. with _trap_reason_name.
61 Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc 62 Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc
62 // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of 63 // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of
63 // DataLayout::trap_bits. This dependency is enforced indirectly 64 // DataLayout::trap_bits. This dependency is enforced indirectly
76 // Note: Keep this enum in sync. with _trap_action_name. 77 // Note: Keep this enum in sync. with _trap_action_name.
77 }; 78 };
78 79
79 enum { 80 enum {
80 _action_bits = 3, 81 _action_bits = 3,
81 _reason_bits = 4, 82 _reason_bits = 5,
82 _action_shift = 0, 83 _action_shift = 0,
83 _reason_shift = _action_shift+_action_bits, 84 _reason_shift = _action_shift+_action_bits,
84 BC_CASE_LIMIT = PRODUCT_ONLY(1) NOT_PRODUCT(4) // for _deoptimization_hist 85 BC_CASE_LIMIT = PRODUCT_ONLY(1) NOT_PRODUCT(4) // for _deoptimization_hist
85 }; 86 };
86 87