RFR 8220788 [lworld] C1 support for LW2 Arrays

Tobias Hartmann tobias.hartmann at oracle.com
Tue May 21 08:05:06 UTC 2019

Hi Ioi,

looks good to me, nice progress! Here are some comments/questions:

- line 151: no need to check for is_null_free()
- line 299: I think you can remove the else branch because we return false anyway and maybe add the
comment to before the check in line 297 ("this can fail with inling ..")

- line 1934: The comment is a bit misleading because we are also emitting this check for interface
arrays and MyValue?[], right?
- line 1940: Why do you need that check? And why do you still emit the flattened check even if
- line 1956: "actual array is a "QLVT;" should be "actual array is a "[QVT;", right?

- Why is that change necessary?


On 20.05.19 05:03, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8220788
> http://cr.openjdk.java.net/~iklam/valhalla/8220788-c1-support-for-lw2-arrays.v01/
> With this changeset, C1 can properly distinguish between "[QV;" and "[LV;" arrays. It can also
> handle non-flattened arrays that are null free (e.g., "[V;" arrays where the size of V is larger
> than ValueArrayElemMaxFlatSize).
> Testing:
>     cd test/hotspot/jtreg/compiler/valhalla/valuetypes
>     jtreg -vmoptions:-XX:+EnableValhallaC1 \
>           -vmoptions:-XX:TieredStopAtLevel=1 \
>           -vmoptions:-XX:-ValueTypePassFieldsAsArgs \
>           -vmoptions:-XX:-ValueTypeReturnedAsFields \
>           -Dtest.c1=true \
>           .
> All tests passed.
> My next step is to test C1 more thoroughly, and add test groups for C1 under valhalla-hs-tier* for
> mach5 testing.
> Thanks
> - Ioi

More information about the valhalla-dev mailing list