diff options
author | Steve Ellcey <sellcey@cavium.com> | 2017-11-17 22:44:32 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2017-11-17 22:44:32 +0000 |
commit | 0495940618abcd98af709ba462c20c89bfd04fab (patch) | |
tree | ea4f9649febb03c09335d23030c23777e142775b | |
parent | abccc074bb741574b00b078277b711194310c497 (diff) | |
download | gcc-0495940618abcd98af709ba462c20c89bfd04fab.zip gcc-0495940618abcd98af709ba462c20c89bfd04fab.tar.gz gcc-0495940618abcd98af709ba462c20c89bfd04fab.tar.bz2 |
re PR target/81356 (__builtin_strcpy is not good for copying an empty string on aarch64)
2017-11-17 Steve Ellcey <sellcey@cavium.com>
PR target/81356
* config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
Remove.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
From-SVN: r254901
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 20 |
2 files changed, 7 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5c02a76..ad478a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-11-17 Steve Ellcey <sellcey@cavium.com> + + PR target/81356 + * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p): + Remove. + (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define. + 2017-11-17 H.J. Lu <hongjiu.lu@intel.com> * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 8779cad..5bd99f8 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -13948,22 +13948,6 @@ aarch64_asan_shadow_offset (void) return (HOST_WIDE_INT_1 << 36); } -static bool -aarch64_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, - unsigned int align, - enum by_pieces_operation op, - bool speed_p) -{ - /* STORE_BY_PIECES can be used when copying a constant string, but - in that case each 64-bit chunk takes 5 insns instead of 2 (LDR/STR). - For now we always fail this and let the move_by_pieces code copy - the string from read-only memory. */ - if (op == STORE_BY_PIECES) - return false; - - return default_use_by_pieces_infrastructure_p (size, align, op, speed_p); -} - static rtx aarch64_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn **gen_seq, int code, tree treeop0, tree treeop1) @@ -15458,10 +15442,6 @@ aarch64_libgcc_floating_mode_supported_p #undef TARGET_LEGITIMIZE_ADDRESS #define TARGET_LEGITIMIZE_ADDRESS aarch64_legitimize_address -#undef TARGET_USE_BY_PIECES_INFRASTRUCTURE_P -#define TARGET_USE_BY_PIECES_INFRASTRUCTURE_P \ - aarch64_use_by_pieces_infrastructure_p - #undef TARGET_SCHED_CAN_SPECULATE_INSN #define TARGET_SCHED_CAN_SPECULATE_INSN aarch64_sched_can_speculate_insn |