]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Improve memory copy from named address space [PR111657]
authorUros Bizjak <ubizjak@gmail.com>
Thu, 5 Oct 2023 15:40:37 +0000 (17:40 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Thu, 5 Oct 2023 15:43:10 +0000 (17:43 +0200)
commitc6bff80d786919f2f64e8a9f3179d6d36888bdb3
tree016ba9793c6a54805919e7085a542061a0dcf51a
parente866d08d8b02ea19f88ac149ecb41695ba626aa6
i386: Improve memory copy from named address space [PR111657]

The stringop strategy selection algorithm falls back to a libcall strategy
when it exhausts its pool of available strategies.  The memory area copy
function (memcpy) is not availabe from the system library for non-default
address spaces, so the compiler emits the most trivial byte-at-a-time
copy loop instead.

The compiler should instead emit an optimized copy loop as a fallback for
non-default address spaces.

PR target/111657

gcc/ChangeLog:

* config/i386/i386-expand.cc (alg_usable_p): Reject libcall
strategy for non-default address spaces.
(decide_alg): Use loop strategy as a fallback strategy for
non-default address spaces.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr111657.c: New test.
gcc/config/i386/i386-expand.cc
gcc/testsuite/gcc.target/i386/pr111657.c [new file with mode: 0644]