summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Richard Neill <richard.neill@arm.com> 2023-01-25 15:08:18 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-03-02 15:46:45 +0000
commit6149a22d1a02d5a2905f1917fbaf14ddbb2c0bd2 (patch)
treece0f77c9b2c400e83d51911f913a497cec8c2623 /compiler/optimizing/nodes.h
parent20f783080b772843a1c1186811e73ec74bab3ae8 (diff)
Optimize the System.arraycopy(char) arm64 intrinsic
Introduce loop inversion, loop unrolling optimization, and larger memory copies to the System.arraycopy(char) intrinsic. Instead of a single loop with a pair of strh/ldrh instructions, we now have two loops: one with ldr/str instructions and the other one with strh/ldrh. The goal is to use increased step size (8 bytes) in the first loop and then after it's over, finish processing of the rest of the array using the smaller step. If the copy length is constant we further optimize by always unrolling the tail loop, and also unrolling the head loop when the copy length is small. Also increase the threshold array size when intrinsic implementation is chosen. Also add tests to copy character arrays of different sizes. Original author: Artem Kotsiuba <artem.kotsiuba@linaro.org> Test: 011-array-copy Test: test-art-target Change-Id: I1dee1dab7931c3de4b91b2bbd5d0180a9820771a
Diffstat (limited to 'compiler/optimizing/nodes.h')
0 files changed, 0 insertions, 0 deletions