Since JDK-8226705 biases of monitors are not revoked anymore when deoptimization of a compiled frame is requested [1], but when the actual deoptimization happens, i.e. when control returns to that frame [2].
With [1] the uses of the argument RegisterMap* map are removed from Deoptimization::deoptimize(JavaThread* thread, frame fr, RegisterMap *map, DeoptReason reason).
As a cleanup the arg should be removed from the parameter list. Callers should be adapted. Callers should not create an updating RegisterMap if UseBiasedLocking is enabled either, because this was only necessary as long as biases were revoked in Deoptimization::deoptimize().
[1]JDK-8226705 removes call to revoke_biases_of_monitors() from Deoptimization::deoptimize()
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.320
[2]JDK-8226705 adds call to revoke_from_deopt_handler() to Deoptimization::fetch_unroll_info_helper() [3]
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.199
[3]JDK-8226705: Deoptimization::revoke_from_deopt_handler() revokes biases just before replacing a
compiled frame with equivalent interpreter frames.
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.290
With [1] the uses of the argument RegisterMap* map are removed from Deoptimization::deoptimize(JavaThread* thread, frame fr, RegisterMap *map, DeoptReason reason).
As a cleanup the arg should be removed from the parameter list. Callers should be adapted. Callers should not create an updating RegisterMap if UseBiasedLocking is enabled either, because this was only necessary as long as biases were revoked in Deoptimization::deoptimize().
[1]
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.320
[2]
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.199
[3]
compiled frame with equivalent interpreter frames.
http://hg.openjdk.java.net/jdk/jdk/rev/408c445d04e8#l21.290
- relates to
-
JDK-8226705 [REDO] Deoptimize with handshakes
-
- Resolved
-