RFR 8224831 [lworld] TestCallingConventionC1.java fails with -Xcomp
Tobias Hartmann
tobias.hartmann at oracle.com
Thu Jun 6 12:13:49 UTC 2019
Hi Ioi,
this looks good to me!
In codeBuffer.hpp, please move Value_Entry in the Entries enum to before Verified_Value_Entry. Also,
in line 81, there is an excess whitespace after "check(e);" No new webrev required.
Thanks,
Tobias
On 04.06.19 06:31, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8224831
> http://cr.openjdk.java.net/~iklam/valhalla/8224831-TestCallingConventionC1-fails-xcomp.v01/
>
> The crash happens when a C1-compiled method calls a callee through its
> unverified entry [1]. Because C1 doesn't scalarize the outgoing parameters, we
> must link the call to a new type of "unverified value entry point" (UVEP).
>
> This patch implements UVEP for C1, C2 and C2i adapters:
>
> A C1-compiled virtual method looks like this:
>
> [(unverified) Entry Point]
> check ic_miss
> [Verified Value Entry Point (RO)]
> pack fields into value objects
> jump VVEP
> [Verified Entry Point]
> pack fields into value objects
> jump VVEP
> [unverified) Value Entry Point]
> check ic_miss
> [Verified Value Entry Point]
> main body of compiled code
>
> A C2-compiled virtual method looks like this:
>
> [unverified) Entry Point]
> check ic_miss
> [Verified Value Entry Point (RO)]
> unpack fields (except <this>)
> jump VEP
> [unverified) Value Entry Point]
> check ic_miss
> [Verified Value Entry Point]
> unpack fields
> jump VEP
> [Verified Entry Point]
> main body of compiled code
>
> For testing, I added more test cases in TestCallingConventionC1 to test all scenarios
> where an UEP or UVEP is called.
>
> [1]
> http://hg.openjdk.java.net/valhalla/valhalla/file/2d8d0287bc22/src/hotspot/share/code/compiledIC.cpp#l541
>
>
>
> Thanks
> - Ioi
>
>
>
More information about the valhalla-dev
mailing list