[jdk16] RFR: 8258134: assert(size == calc_size) failed: incorrect size calculation on x86_32 with AVX512 machines
Jie Fu
jiefu at openjdk.java.net
Tue Dec 15 06:49:07 UTC 2020
Hi all,
Two vector api tests crashed on x86_32 with AVX512 machines due to this assert [1].
The reason is that 'calc_size' is incorrect.
But there is no need to calculate 'calc_size' manually at all since the result [2] is actually never used by the VM.
Also, it is really hard to maintain the calculation logic for various hardwares and configurations.
And it may be easily broken again in the future with more and more complicated instructions & configurations.
So it would be better to remove the calculation and the assert, which is safe and already done for x86_64 [3].
The fix follows what is done for x86_64.
And it also makes vec_stack_to_stack_helper, vec_mov_helper and vec_spill_helper return void according to @neliasso 's comments [4].
Thanks.
Best regards,
Jie
[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_32.ad#L1016
[2] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_32.ad#L1059
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_64.ad#L1042
[4] https://github.com/openjdk/jdk/pull/1753#discussion_r542505836
-------------
Commit messages:
- 8258134: assert(size == calc_size) failed: incorrect size calculation on x86_32 with AVX512 machines
Changes: https://git.openjdk.java.net/jdk16/pull/21/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk16&pr=21&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8258134
Stats: 114 lines in 4 files changed: 1 ins; 93 del; 20 mod
Patch: https://git.openjdk.java.net/jdk16/pull/21.diff
Fetch: git fetch https://git.openjdk.java.net/jdk16 pull/21/head:pull/21
PR: https://git.openjdk.java.net/jdk16/pull/21
More information about the hotspot-compiler-dev
mailing list