< prev index next >

src/hotspot/share/runtime/deoptimization.hpp

Print this page
rev 54697 : imported patch 8221734-v2-merge

*** 133,148 **** Unpack_uncommon_trap = 2, // redo last byte code (C2 only) Unpack_reexecute = 3, // reexecute bytecode (C1 only) Unpack_LIMIT = 4 }; // Checks all compiled methods. Invalid methods are deleted and // corresponding activations are deoptimized. static int deoptimize_dependents(); // Deoptimizes a frame lazily. nmethod gets patched deopt happens on return to the frame ! static void deoptimize(JavaThread* thread, frame fr, RegisterMap *reg_map); static void deoptimize(JavaThread* thread, frame fr, RegisterMap *reg_map, DeoptReason reason); #if INCLUDE_JVMCI static address deoptimize_for_missing_exception_handler(CompiledMethod* cm); #endif --- 133,155 ---- Unpack_uncommon_trap = 2, // redo last byte code (C2 only) Unpack_reexecute = 3, // reexecute bytecode (C1 only) Unpack_LIMIT = 4 }; + static void deoptimize_all_marked(); + + private: // Checks all compiled methods. Invalid methods are deleted and // corresponding activations are deoptimized. static int deoptimize_dependents(); + static void inflate_monitors_handshake(JavaThread* thread, frame fr, RegisterMap* map); + static void inflate_monitors(JavaThread* thread, frame fr, RegisterMap* map); + static void deopt_thread(bool in_handshake, JavaThread* thread, frame fr, RegisterMap *map, DeoptReason reason); + public: // Deoptimizes a frame lazily. nmethod gets patched deopt happens on return to the frame ! static void deoptimize(JavaThread* thread, frame fr, RegisterMap *map, bool in_handshake = false); static void deoptimize(JavaThread* thread, frame fr, RegisterMap *reg_map, DeoptReason reason); #if INCLUDE_JVMCI static address deoptimize_for_missing_exception_handler(CompiledMethod* cm); #endif
*** 151,161 **** // Does the actual work for deoptimizing a single frame static void deoptimize_single_frame(JavaThread* thread, frame fr, DeoptReason reason); // Helper function to revoke biases of all monitors in frame if UseBiasedLocking // is enabled ! static void revoke_biases_of_monitors(JavaThread* thread, frame fr, RegisterMap* map); #if COMPILER2_OR_JVMCI JVMCI_ONLY(public:) // Support for restoring non-escaping objects --- 158,169 ---- // Does the actual work for deoptimizing a single frame static void deoptimize_single_frame(JavaThread* thread, frame fr, DeoptReason reason); // Helper function to revoke biases of all monitors in frame if UseBiasedLocking // is enabled ! static void fix_monitors(JavaThread* thread, frame fr, RegisterMap* map) ! { inflate_monitors(thread, fr, map); } #if COMPILER2_OR_JVMCI JVMCI_ONLY(public:) // Support for restoring non-escaping objects
< prev index next >