RFR: 8183546: [MVT] cleanup/improve vreturn convention implementation

David Simms david.simms at oracle.com
Wed Jul 5 08:10:19 UTC 2017


Runtime portions look good, can't answer for the JIT specifics...

/Simms


On 5/07/2017 9:33 a.m., Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/valhalla/vreturn-improv/webrev.00/
>
> This patch:
>
> - reworks the verification logic in
>    SharedRuntime::store_value_type_fields_to_buf() to address the crash
>    that Paul encountered
>
> - changes the vreturn convention so if we return the klass pointer +
>    fields, the klass pointer is tagged by setting its least significant
>    bit. This way it's cheaper for the caller to detect if it's getting an
>    oop, a buffered value or a list of fields back from the callee. (this
>    is based on a discussion with Fred)
>
> - stores precomputed extended signature and vreturn registers in the
>    ValueKlass to not have to compute them every time they are
>    needed. This is also something Fred suggested. I considered
>    initializaing those fields on first use but came to the conclusion it
>    would make things too complicated. For instance the vreturn registers
>    are sometimes use at a point where the thread can't safepoint making
>    it impossible to use a metadata Array.
>
> Roland.



More information about the valhalla-dev mailing list