Request for reviews (M): 7039731: arraycopy could use prefetch on SPARC

Tom Rodriguez tom.rodriguez at oracle.com
Fri Sep 2 12:14:38 PDT 2011


On Sep 2, 2011, at 12:06 PM, Vladimir Kozlov wrote:

> I think, it is big enough. Java object are mostly small. I think I did an experiment back on T2 and did not saw improvement with larger unroll.

I agree that for common Java programs it's probably good but I think we may fall down when compared to memcpy for large arrays used as buffers.  I don't think you need to address it as part of these changes but I think it's probably the main remaining flaw with our own routines.

tom

> 
> Vladimir
> 
> Tom Rodriguez wrote:
>> On Sep 2, 2011, at 11:54 AM, Vladimir Kozlov wrote:
>>> Thank you, Tom
>>> 
>>> Tom Rodriguez wrote:
>>>> I think this looks ok.  How did you settle on 64 bytes?
>>> What do you mean? disjoint_long_copy_core() already did 64 bytes copy per iteration before these changes. For smaller element's sizes the shifting code is large enough to hide latency from compare and branch so it only copy 16 bytes per iteration.
>> I'm just wondering whether 64 is big enough.  It seems kind of small but maybe there's no benefit to larger sizes.
>> tom
>>> Thanks,
>>> Vladimir
>>> 
>>>> tom
>>>> On Sep 2, 2011, at 9:57 AM, Vladimir Kozlov wrote:
>>>>> http://cr.openjdk.java.net/~kvn/7039731/webrev
>>>>> 
>>>>> 7039731: arraycopy could use prefetch on SPARC
>>>>> 
>>>>> Use BIS and prefetch in arraycopy stubs for Sparc (BIS for T4 only).
>>>>> 
>>>>> Thanks,
>>>>> Vladimir



More information about the hotspot-compiler-dev mailing list