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:

c1_Instruction.cpp:
- 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 ..")

c1_LIRAssembler_x86.cpp:
- 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
value()->is_illegal()?
- line 1956: "actual array is a "QLVT;" should be "actual array is a "[QVT;", right?

macroAssembler_x86.cpp:
- Why is that change necessary?

Thanks,
Tobias

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