[lworld+vector] RFR: 8311675: [lworld+vector] Max Species support. [v3]

Jatin Bhateja jbhateja at openjdk.org
Wed Oct 18 01:03:18 UTC 2023


On Tue, 17 Oct 2023 01:25:48 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> Since we never expose concrete vector types to users hence its only possible to create an array of abstract vector references which can be heterogeneous. This is different from an array of value types which are implicitly final classes and may be flattened into a compact layout since such an array will be homogeneous in nature.
>
> Yeah, I understand. Maybe we could find other more general ways to forbit such kind of array flatten like vector objects, instead of hard coding the `vector/vector_payload` classes here. We can revisit this in future. WDYT?

> Thanks for the explanation! Seems it also causes the jvm crash in `VectorXXXConversionTests`, but I didn't figure out the root cause yet. 

In this case PhiNode generated by PredictedCallGenerator based on the type profile was imbalanced i.e. its inputs had different concrete payload types, thus type of PhiNode got resolved to lowest common ancestor type i.e. an abstract vector payload type, in the downstream flow following assertion failed because flat_array flag for the type was set even though the type was a non-inline type.

https://github.com/openjdk/valhalla/blob/lworld/src/hotspot/share/opto/type.cpp#L4177

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/931#discussion_r1362969857



More information about the valhalla-dev mailing list