Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/thread.cpp @ 13188:6b2d8d20ecbd
deoptimization: add helper to minimize hsx diff #resolve GRAAL-531
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Thu, 28 Nov 2013 14:12:31 +0100 |
parents | 5465ba051280 |
children | 5a9afbf72714 |
comparison
equal
deleted
inserted
replaced
13187:b199147f187e | 13188:6b2d8d20ecbd |
---|---|
2263 if (f.is_runtime_frame() || f.is_safepoint_blob_frame()) { | 2263 if (f.is_runtime_frame() || f.is_safepoint_blob_frame()) { |
2264 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass | 2264 // BiasedLocking needs an updated RegisterMap for the revoke monitors pass |
2265 RegisterMap reg_map(this, UseBiasedLocking); | 2265 RegisterMap reg_map(this, UseBiasedLocking); |
2266 frame compiled_frame = f.sender(®_map); | 2266 frame compiled_frame = f.sender(®_map); |
2267 if (!StressCompiledExceptionHandlers && compiled_frame.can_be_deoptimized()) { | 2267 if (!StressCompiledExceptionHandlers && compiled_frame.can_be_deoptimized()) { |
2268 Deoptimization::deoptimize(this, compiled_frame, ®_map, Deoptimization::Reason_constraint); | 2268 Deoptimization::deoptimize(this, compiled_frame, ®_map); |
2269 } | 2269 } |
2270 } | 2270 } |
2271 } | 2271 } |
2272 | 2272 |
2273 // Set async. pending exception in thread. | 2273 // Set async. pending exception in thread. |
2696 deopt = true; // One-time only print before deopt | 2696 deopt = true; // One-time only print before deopt |
2697 tty->print_cr("[BEFORE Deoptimization]"); | 2697 tty->print_cr("[BEFORE Deoptimization]"); |
2698 trace_frames(); | 2698 trace_frames(); |
2699 trace_stack(); | 2699 trace_stack(); |
2700 } | 2700 } |
2701 Deoptimization::deoptimize(this, *fst.current(), fst.register_map(), Deoptimization::Reason_constraint); | 2701 Deoptimization::deoptimize(this, *fst.current(), fst.register_map()); |
2702 } | 2702 } |
2703 } | 2703 } |
2704 | 2704 |
2705 if (DebugDeoptimization && deopt) { | 2705 if (DebugDeoptimization && deopt) { |
2706 tty->print_cr("[AFTER Deoptimization]"); | 2706 tty->print_cr("[AFTER Deoptimization]"); |
2732 nmethod* nm = fst.current()->cb()->as_nmethod_or_null(); | 2732 nmethod* nm = fst.current()->cb()->as_nmethod_or_null(); |
2733 xtty->elem("deoptimized thread='" UINTX_FORMAT "' compile_id='%d'", | 2733 xtty->elem("deoptimized thread='" UINTX_FORMAT "' compile_id='%d'", |
2734 this->name(), nm != NULL ? nm->compile_id() : -1); | 2734 this->name(), nm != NULL ? nm->compile_id() : -1); |
2735 } | 2735 } |
2736 | 2736 |
2737 Deoptimization::deoptimize(this, *fst.current(), fst.register_map(), Deoptimization::Reason_constraint); | 2737 Deoptimization::deoptimize(this, *fst.current(), fst.register_map()); |
2738 } | 2738 } |
2739 } | 2739 } |
2740 } | 2740 } |
2741 | 2741 |
2742 | 2742 |