RFR: 8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions [v3]

Jatin Bhateja jbhateja at openjdk.java.net
Fri Oct 16 17:24:13 UTC 2020


On Thu, 15 Oct 2020 14:54:26 GMT, Nils Eliasson <neliasso at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Replacing explicit type checks with existing type checking routines
>
> src/hotspot/share/opto/memnode.hpp line 1188:
> 
>> 1186:     TrailingLoadStore,
>> 1187:     LeadingLoadStore,
>> 1188:     AfterPartialArrayCopy
> 
> Change to keep consistent with the other names:
> AfterPartialArrayCopy -> TrailingPartialArrayCopy
> 
> Why is a special kind needed for partial array copy?

Idea here is to prevent bypassing arraycopy operation post expansion during memory chain discovery [and] optimization.
Currently a memory barrier is inserted after array copy macro expansion into a stub call, this pattern is being checked
during memory chain discovery,  with partial in-lining we create additional control structure for selection b/w slow
path (stub call) and fast path (partially in-lined code).  To prevent increasing the complexity of patter matching
introduced a flag in MemBarrier node which is set only if partial in-lining takes place.

-------------

PR: https://git.openjdk.java.net/jdk/pull/302


More information about the hotspot-compiler-dev mailing list