[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