RFR: 8371964: C2 compilation asserts with "Unexpected load/store size" [v3]

Quan Anh Mai qamai at openjdk.org
Mon Nov 24 18:14:39 UTC 2025


On Thu, 20 Nov 2025 22:26:33 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Thanks for the update! If it's a short running test/config, then I think it would be good to have this extra config to cover the changes of this patch.
>
> Is it truly specific to post-loop opts phase? Isn't it yet another paradoxical IR shape occurring in effectively dead code?
> 
> In the longer term, it would be good to ensure such effectively dead nodes eventually go away. Or, better, eagerly trigger their elimination. Otherwise, it could cause issues later in compilation process unless the problematic conditions are explicitly handled everywhere (e.g., during matching or code generation for `vmask_gen_imm` on x64 and AArch64).

That's a good idea, so I change the function to returning `top` in those cases. For the `VectorMaskGenNode` itself, the situation seems harder, because it can float anywhere, so after loop opts and cast node removal, GVN may common multiple different instances of `VectorMaskGenNode`, and it is inevitable that it may be executed with an out-of-bounds input value. I think we just need to make sure that its uses can live with the fact that the result would be unspecified then.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28410#discussion_r2557261246


More information about the hotspot-compiler-dev mailing list