RFR: 8375010: C2 VectorAPI: assert(vbox->is_CheckCastPP()) failed: should be expanded
Vladimir Ivanov
vlivanov at openjdk.org
Wed Jan 14 17:06:37 UTC 2026
On Tue, 13 Jan 2026 17:35:35 GMT, Kerem Kat <krk at openjdk.org> wrote:
> The check `vect->is_Vector() || vect->is_LoadVector()` doesn't handle `Proj` nodes that resolve to vector types, causing an assertion failure when such nodes flow through a `Phi` into `VectorBox`.
src/hotspot/share/opto/vector.cpp line 357:
> 355: // any of the inputs to VectorBoxNode are value-numbered they can only
> 356: // move up and are guaranteed to dominate.
> 357: if (vbox->is_Phi() && vect->bottom_type()->isa_vect()) {
Does `vect->bottom_type()->isa_vect()` check become redundant? In other words, is it possible to observe a non-vector value here? It seems like the important bit is whether `vect` is a `Phi` or not.
Another observation: `vbox->is_Phi() && vect->is_Phi()` and `vbox->is_Phi() && !vect->is_Phi()` cases can be commoned.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29200#discussion_r2691294922
More information about the hotspot-compiler-dev
mailing list