aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorSudakshina Das <sudi.das@arm.com>2020-11-13 10:48:27 +0000
committerSudakshina Das <sudi.das@arm.com>2020-11-13 10:48:27 +0000
commit54bbde550ec557e48a67ca1f4036e46710bcfeda (patch)
tree8aa3b8ab436d1a1720cbe8d2ab0b1a18d851668b /gcc/tree-vrp.c
parent5e28fca09c9c72bf5631efd0f0b06d52b0ebdb4d (diff)
downloadgcc-54bbde550ec557e48a67ca1f4036e46710bcfeda.zip
gcc-54bbde550ec557e48a67ca1f4036e46710bcfeda.tar.gz
gcc-54bbde550ec557e48a67ca1f4036e46710bcfeda.tar.bz2
aarch64: Add backend support for expanding __builtin_memset
This patch implements aarch64 backend expansion for __builtin_memset. Most of the implementation is based on the expansion of __builtin_memcpy. We change the values of SET_RATIO and MOVE_RATIO for cases where we do not have to strictly align and where we can benefit from NEON instructions in the backend. gcc/ChangeLog: * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New declaration. * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for E_V16QImode. (aarch64_set_one_block_and_progress_pointer): New helper for aarch64_expand_setmem. (aarch64_expand_setmem): Define the expansion for memset. * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor aarch64_expand_setmem when allowed and profitable. (SET_RATIO): Likewise. * config/aarch64/aarch64.md: Define pattern for setmemdi. gcc/testsuite/ChangeLog: * g++.dg/tree-ssa/pr90883.C: Remove xfail for aarch64. * gcc.dg/tree-prof/stringop-2.c: Add xfail for aarch64. * gcc.target/aarch64/memset-corner-cases.c: New test. * gcc.target/aarch64/memset-q-reg.c: New test.
Diffstat (limited to 'gcc/tree-vrp.c')
0 files changed, 0 insertions, 0 deletions