Enhancing C2 support of Vector API implementation
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Wed Dec 20 12:30:15 UTC 2017
Sandhya,
> Thanks for sharing your thoughts; very valuable information. I have a question on the "Generalized Intrinsics". On slide 20, you have a comment:
> "If inlining happens, then the intrinsification will always succeed
> • Vector::add()/IntVector::add() => Int256Vector::add() => VectorIntrinsics::binaryOp(..)"
>
> Would @ForceInline annotation on VectorIntrinsic binaryOp(..) method help here to make sure that it gets in-lined always by C2?
VectorIntrinsic.binaryOp inlining matters only when intrinsification fails.
In that case, inlining of VI.binaryOp is necessary, but not enough to
get decent code: lambda body with default implementation (and everything
in it) should be inlined as well, all vector elements scalarized, and
boxes eliminated.
So, IMO just putting @FI on VI.binaryOp doesn't help much
non-intrinsified case. More work is needed in that area.
Best regards,
Vladimir Ivanov
> -----Original Message-----
> From: panama-dev [mailto:panama-dev-bounces at openjdk.java.net] On Behalf Of Vladimir Ivanov
> Sent: Tuesday, December 19, 2017 9:10 AM
> To: 'panama-dev at openjdk.java.net' <panama-dev at openjdk.java.net>
> Subject: Enhancing C2 support of Vector API implementation
>
> Hi,
>
> I'd like to share an overview of possible improvements in C2 support of
> Vector API:
>
> http://cr.openjdk.java.net/~vlivanov/talks/2017_VectorAPI_C2_Enhancements.pdf
>
> The focus is on generalized intrinsics and vector box eliminiation, but
> (I hope) in a more accessible form than I wrote on the list before [1] [2].
>
> Though the focus is on near-term opportunities, possible interactions
> with Project Valhalla are covered a bit.
>
> Best regards,
> Vladimir Ivanov
>
> [1]
> http://mail.openjdk.java.net/pipermail/panama-dev/2017-November/000748.html
> [2]
> http://mail.openjdk.java.net/pipermail/panama-dev/2017-December/000840.html
>
More information about the panama-dev
mailing list