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