RFR: 8303415: Add VM_Version::is_intrinsic_supported(id)
Vladimir Kozlov
kvn at openjdk.org
Sat Mar 4 02:13:10 UTC 2023
On Fri, 3 Mar 2023 16:16:08 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Currently we check VM flags, directives and JIT compiler support when we generate intrinsics.
> We have *product* VM flags for most intrinsics and set them in VM based on HW support.
> But not all intrinsics have such flags and it is not scalable to add new *product* flag for each new intrinsic.
> Also we have `-XX:DisableIntrinsic=<id>` and `-XX:ControlIntrinsic=<id>` flags to control intrinsics from command line. We don't need specific flags for that.
>
> I propose to add new `VM_Version::is_intrinsic_supported(id)` method to check platform support for intrinsic without adding new flag. I used it for `_floatToFloat16` intrinsic for my work on [JDK-8302976](https://bugs.openjdk.org/browse/JDK-8302976).
>
> Additional fixes:
> Fixed Interpreter to skip intrinsics if they are disabled with flag.
> Moved Interpreter's `InlineIntrinsics` flag check into one place in shared code.
> Added separate interpreter id for `_dsqrt_strict` so it could be disabled separately from regular `_dsqrt`.
> Added missing `native` mark to `_currentThread`.
> Removed unused `AbstractInterpreter::in_native_entry()`.
> Cleanup C2 intrinsic checks code.
>
> Tested tier1-4,xcomp,stress. Also ran tier1-3,xcomp with `-XX:-InlineIntrinsics`.
GHA failure on linux-x86 in test java/foreign/callarranger/TestMacOsAArch64CallArranger.java most likely due to [JDK-8303516](https://bugs.openjdk.org/browse/JDK-8303516). I did not have the fix when submitted PR.
-------------
PR: https://git.openjdk.org/jdk/pull/12858
More information about the hotspot-compiler-dev
mailing list