comparison src/share/vm/runtime/thread.cpp @ 5110:0ebca2e35ca5

more preparations for disabling runtime feedback selectively based on deoptimization history
author Christian Haeubl <christian.haeubl@oracle.com>
date Thu, 15 Mar 2012 15:31:34 -0700
parents 2f2c6347fce4
children 422c979ff392
comparison
equal deleted inserted replaced
5109:6766253384bf 5110:0ebca2e35ca5
2056 if (f.is_runtime_frame() || f.is_safepoint_blob_frame()) { 2056 if (f.is_runtime_frame() || f.is_safepoint_blob_frame()) {
2057 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass 2057 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass
2058 RegisterMap reg_map(this, UseBiasedLocking); 2058 RegisterMap reg_map(this, UseBiasedLocking);
2059 frame compiled_frame = f.sender(&reg_map); 2059 frame compiled_frame = f.sender(&reg_map);
2060 if (compiled_frame.can_be_deoptimized()) { 2060 if (compiled_frame.can_be_deoptimized()) {
2061 Deoptimization::deoptimize(this, compiled_frame, &reg_map); 2061 Deoptimization::deoptimize(this, compiled_frame, &reg_map, Deoptimization::Reason_constraint);
2062 } 2062 }
2063 } 2063 }
2064 } 2064 }
2065 2065
2066 // Set async. pending exception in thread. 2066 // Set async. pending exception in thread.
2518 if (!has_last_Java_frame()) return; 2518 if (!has_last_Java_frame()) return;
2519 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass 2519 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass
2520 StackFrameStream fst(this, UseBiasedLocking); 2520 StackFrameStream fst(this, UseBiasedLocking);
2521 for(; !fst.is_done(); fst.next()) { 2521 for(; !fst.is_done(); fst.next()) {
2522 if (fst.current()->should_be_deoptimized()) { 2522 if (fst.current()->should_be_deoptimized()) {
2523 Deoptimization::deoptimize(this, *fst.current(), fst.register_map()); 2523 Deoptimization::deoptimize(this, *fst.current(), fst.register_map(), Deoptimization::Reason_constraint);
2524 } 2524 }
2525 } 2525 }
2526 } 2526 }
2527 2527
2528 2528