< prev index next >
src/hotspot/share/runtime/deoptimization.hpp
Print this page
rev 56098 : imported patch 8226705-8221734-baseline
*** 135,150 ****
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);
static oop get_cached_box(AutoBoxObjectValue* bv, frame* fr, RegisterMap* reg_map, TRAPS);
--- 135,157 ----
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 revoke_using_handshake(JavaThread* thread, frame fr, RegisterMap* map);
+ static void revoke_using_safepoint(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);
static oop get_cached_box(AutoBoxObjectValue* bv, frame* fr, RegisterMap* reg_map, TRAPS);
*** 154,164 ****
// 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
--- 161,173 ----
// 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) {
! revoke_using_safepoint(thread, fr, map);
! }
#if COMPILER2_OR_JVMCI
JVMCI_ONLY(public:)
// Support for restoring non-escaping objects
< prev index next >