RFR(L): 6912521: System.arraycopy works slower than the simple loop for little lengths

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Jan 14 20:22:40 UTC 2015


The logic which choose direction of coping in ArrayCopyNode::Ideal() is 
strange. I would like to see more explicit checks there. Something like:

if (is_array_copy_overlap()) {
   array_copy_backward()
} else {
   array_copy_forward()
}

Can you move ArraCopy class code from callnode.?pp to new 
arraycopynode.?pp files? the code become too large.

Can you add comment in library_call.cpp explaining new 
validation/casting logic? Why you do that?

Thanks,
Vladimir

On 1/14/15 1:34 AM, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/6912521/webrev.00/
>
> Follow up to 6700100 (instance clone as series of loads/stores): convert ArrayCopyNode for small array copies (clone of arrays, System.arraycopy, Arrays.copyOf) to series of loads and stores.
>
> Roland.
>


More information about the hotspot-compiler-dev mailing list