[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