[16] RFR(M) 825239: AOT need to process new markId DEOPT_MH_HANDLER_ENTRY in compiled code
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Aug 27 00:32:19 UTC 2020
http://cr.openjdk.java.net/~kvn/8252396/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8252396
8252058 added new markId DEOPT_MH_HANDLER_ENTRY to handle deoptimization for MH invoke.
But changes did not updated AOT (jaotc and Hotspot's AOT code) to handle this new markId.
We should handle DEOPT_MH_HANDLER_ENTRY in AOT similar to DEOPT_HANDLER_ENTRY.
In aotCompiledMethod.hpp, if DEOPT_MH_HANDLER_ENTRY value is set, CompiledMethod::_deopt_mh_handler_begin [2] is set
similar to Graal JIT [3]. I kept current code to set _deopt_mh_handler_begin to 'this' when DEOPT_MH_HANDLER_ENTRY value
is not set. But may be it should be set to NULL as in [3]. May be it does not matter because offset is not used when
there are not MH invoke in method.
Tested: ran tests which used AOT (including Graal testing).
Thanks,
Vladimir
[1] https://bugs.openjdk.java.net/browse/JDK-8252058
[2] http://hg.openjdk.java.net/jdk/jdk/file/6abdfb11f342/src/hotspot/share/code/compiledMethod.hpp#l168
[3] http://hg.openjdk.java.net/jdk/jdk/file/6abdfb11f342/src/hotspot/share/code/nmethod.cpp#l764
More information about the hotspot-compiler-dev
mailing list