hotspot/src/share/vm/runtime/deoptimization.hpp
changeset 24934 43a6fc13b7d4
parent 24477 d2442b4a080f
child 28039 bf5a8340bf8a
equal deleted inserted replaced
24933:c16c7a4ac386 24934:43a6fc13b7d4
    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) {