[vector] RFR: Enable call devirtualization during post-parse phase
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Jul 2 23:02:13 UTC 2020
Sorry for the delay. Pushed:
https://hg.openjdk.java.net/panama/dev/rev/5b601a43ac88
Best regards,
Vladimir Ivanov
On 02.07.2020 23:41, Viswanathan, Sandhya wrote:
> Hi Vladimir,
>
> When you get a chance please do push this on to vectorIntrinsics branch.
>
> Best Regards,
> Sandhya
>
>
> -----Original Message-----
> From: panama-dev <panama-dev-bounces at openjdk.java.net> On Behalf Of Vladimir Ivanov
> Sent: Tuesday, June 09, 2020 3:36 PM
> To: panama-dev <panama-dev at openjdk.java.net>
> Subject: [vector] RFR: Enable call devirtualization during post-parse phase
>
> http://cr.openjdk.java.net/~vlivanov/panama/vector/late_inline_virtual/webrev.00/
>
> Vector API refactoring broke inlining through virtual calls in some important scenarios (for example, both dot product and matrix multiplication samples [1] are affected [1]).
>
> The primary root cause is the delay in intrinsification of vector
> operations: unless enough type info is available for receiver during parsing, the call won't be devirtualized (and hence inlined), but intrinsification happens during post-parse phase.
>
> However, it turned out that the problem is broader and not specific to Vector API. It's not enough just to intrinsify vector operations eagerly.
>
> Proposed patch is an experimental implementation of post-parse devirtualization (virtual-to-direct call transformation) which then enables post-parse inlining & intrinsification through such calls.
>
> I'll work on upstreaming the optimization separately since it benefits ordinary Java code as well. Meanwhile, I propose to integrate the interim version into vectorIntrinsics branch right away to avoid surprises during performance analysis.
>
> Best regards,
> Vladimir Ivanov
>
> [1]
> https://github.com/richardstartin/vectorbenchmarks/blob/master/src/main/java/com/openkappa/panama/vectorbenchmarks/
>
More information about the panama-dev
mailing list