From 0495940618abcd98af709ba462c20c89bfd04fab Mon Sep 17 00:00:00 2001
From: Steve Ellcey <sellcey@cavium.com>
Date: Fri, 17 Nov 2017 22:44:32 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog                |  7 +++++++
 gcc/config/aarch64/aarch64.c | 20 --------------------
 2 files changed, 7 insertions(+), 20 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5c02a76121d7..ad478a3c4dcd 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 8779cad91d92..5bd99f894a0c 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
 
-- 
GitLab