Revision: 127367
Author:   johannes
Date:     2007-05-17 16:47:22 -0700 (Thu, 17 May 2007)

Log Message:
-----------
Make ARM more aggressive about using target-dependent
memcpy expansion for aggregate copy.

Modified Paths:
--------------
    apple-local/branches/llvm/gcc/config/arm/arm.h
    apple-local/branches/llvm/gcc/llvm-convert.cpp

Modified: apple-local/branches/llvm/gcc/config/arm/arm.h
===================================================================
--- apple-local/branches/llvm/gcc/config/arm/arm.h      2007-05-17 21:04:42 UTC 
(rev 127366)
+++ apple-local/branches/llvm/gcc/config/arm/arm.h      2007-05-17 23:47:22 UTC 
(rev 127367)
@@ -2923,4 +2923,8 @@
 #define LLVM_OVERRIDE_TARGET_ARCH() \
   (TARGET_THUMB ? "thumb" : "")
 
+/* Doing struct copy by partial-word loads and stores is not a good idea on 
ARM. */
+#define TARGET_LLVM_MIN_BYTES_COPY_BY_MEMCPY 4
+/* APPLE LOCAL end llvm */
+
 #endif /* ! GCC_ARM_H */

Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===================================================================
--- apple-local/branches/llvm/gcc/llvm-convert.cpp      2007-05-17 21:04:42 UTC 
(rev 127366)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp      2007-05-17 23:47:22 UTC 
(rev 127367)
@@ -1120,6 +1120,10 @@
   }
 }
 
+#ifndef TARGET_LLVM_MIN_BYTES_COPY_BY_MEMCPY
+#define TARGET_LLVM_MIN_BYTES_COPY_BY_MEMCPY 64
+#endif
+
 /// EmitAggregateCopy - Copy the elements from SrcPtr to DestPtr, using the
 /// GCC type specified by GCCType to know which elements to copy.
 void TreeToLLVM::EmitAggregateCopy(Value *DestPtr, Value *SrcPtr, tree type,
@@ -1129,7 +1133,8 @@
 
   // If the type is small, copy the elements instead of using a block copy.
   if (TREE_CODE(TYPE_SIZE(type)) == INTEGER_CST &&
-      TREE_INT_CST_LOW(TYPE_SIZE_UNIT(type)) < 64) {
+      TREE_INT_CST_LOW(TYPE_SIZE_UNIT(type)) <
+          TARGET_LLVM_MIN_BYTES_COPY_BY_MEMCPY) {
     const Type *LLVMTy = ConvertType(type);
     if (CountAggregateElements(LLVMTy) <= 8) {
       DestPtr = CastToType(Instruction::BitCast, DestPtr, 


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to