RFR(s): AArch64: 8149080: Recoginize disjoint array copy in stub code

Hui Shi hui.shi at linaro.org
Fri Feb 5 12:47:35 UTC 2016


Would some one help review this changeset?  This improves performance for
codes like string builder and concat on aarch64.
Bug: https://bugs.openjdk.java.net/browse/JDK-8149080
webrev: http://cr.openjdk.java.net/~hshi/8149080/webrev/

Arraycopy without overlapping is faster than overlapped copy. If overlap
information is unknown at JIT time, stub code will check if arraycopy src
and dest array overlap at runtime, if not overlap, stub will perform faster
none-overlap array copy. In current aarch64 implementation, stub code
checks only if dest below src, this doesn’t cover cases dest above src but
still not overlap case (as X86 did).

Fixing is checking both conditions,  if (dest-src) is above/equal (copy
size), it's not overlap and stub code can jump to none overlapping copy.
Another modification is adding StubCodeMark for backward/forward copy longs
on aarch64, so code in these sections can get profiled with correct stub

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160205/3b6ee947/attachment.html>

More information about the hotspot-compiler-dev mailing list