Integrated: 8371964: C2 compilation asserts with "Unexpected load/store size"
Quan Anh Mai
qamai at openjdk.org
Tue Dec 2 15:46:56 UTC 2025
On Thu, 20 Nov 2025 08:42:46 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:
> Hi,
>
> This fixes the crash in `Load/StoreVectorMaskedNode::Ideal`. The issue here is that the graph is not canonical during idealization, which leads to us processing a dead node. The fix I propose is to bail-out when that happens.
>
> To be more specific, for this issue, we have the graph that looks like:
>
> ConI -> ConvI2L -> CastLL(0..32) -> VectorMaskGen
>
> with `ConI` being 45 and `MaxVectorSize` being 32. In this instance, `CastLL` is processed before `ConvI2L`, and when it is processed, it sees that the type of `ConvI2L` being its bottom type. As a result, it does not know that it is top, and since we are after macro expansion, which is after loop opts, the `CastLL` goes away, leaving us with:
>
> ConI -> ConvI2L -> VectorMaskGen
>
> After `ConvI2L` is processed, we know that the input of `VectorMaskGen` is a constant 45, which is larger than `MaxVectorSize`, leading to the assert failure.
>
> Please take a look and leave your thoughts, thanks a lot.
This pull request has now been integrated.
Changeset: ca4ae806
Author: Quan Anh Mai <qamai at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/ca4ae8063edddda36fafafd06b9b1a88ffbf9d2e
Stats: 23 lines in 2 files changed: 19 ins; 0 del; 4 mod
8371964: C2 compilation asserts with "Unexpected load/store size"
Reviewed-by: chagedorn, epeter
-------------
PR: https://git.openjdk.org/jdk/pull/28410
More information about the hotspot-compiler-dev
mailing list