[jdk16] Integrated: 8258134: assert(size == calc_size) failed: incorrect size calculation on x86_32 with AVX512 machines

Jie Fu jiefu at openjdk.java.net
Fri Dec 18 12:53:25 UTC 2020


On Tue, 15 Dec 2020 06:44:25 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: 45a150b8
Author:    Jie Fu <jiefu at openjdk.org>
URL:       https://git.openjdk.java.net/jdk16/commit/45a150b8
Stats:     114 lines in 4 files changed: 1 ins; 93 del; 20 mod

8258134: assert(size == calc_size) failed: incorrect size calculation on x86_32 with AVX512 machines

Reviewed-by: kvn, thartmann

-------------

PR: https://git.openjdk.java.net/jdk16/pull/21


More information about the hotspot-compiler-dev mailing list