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