[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c

Chris Lattner lattner at cs.uiuc.edu
Thu Apr 13 11:18:07 PDT 2006



Changes in directory llvm-gcc/gcc:

llvm-expand.c updated: 1.126 -> 1.127
---
Log message:

Use the appropriate type suffix for llvm.memcpy/llvm.memmove, resolving PR733: http://llvm.cs.uiuc.edu/PR733 


---
Diffs of the changes:  (+12 -5)

 llvm-expand.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)


Index: llvm-gcc/gcc/llvm-expand.c
diff -u llvm-gcc/gcc/llvm-expand.c:1.126 llvm-gcc/gcc/llvm-expand.c:1.127
--- llvm-gcc/gcc/llvm-expand.c:1.126	Tue Jan 17 00:22:23 2006
+++ llvm-gcc/gcc/llvm-expand.c	Thu Apr 13 13:17:55 2006
@@ -344,24 +344,31 @@
                            unsigned Alignment, int isMove) {
   static llvm_function *llvm_memcpy_fn = 0, *llvm_memmove_fn = 0;
   static llvm_type *size_tTy = 0;
-
+  
+  if (size_tTy == 0)
+    size_tTy = llvm_type_get_from_tree(size_type_node);
+  
   llvm_instruction *I;
   if (!isMove && !llvm_memcpy_fn) {
+    const char *Name = size_tTy == UIntTy ? 
+       "llvm.memcpy.i32" : "llvm.memcpy.i64";
     llvm_type *FnTy = llvm_type_create_function(4, VoidTy);
     FnTy->Elements[1] = FnTy->Elements[2] = VoidPtrTy;
-    FnTy->Elements[3] = size_tTy = llvm_type_get_from_tree(size_type_node);
+    FnTy->Elements[3] = size_tTy;
     FnTy->Elements[4] = UIntTy;
     FnTy = llvm_type_get_cannonical_function(FnTy);
-    llvm_memcpy_fn = CreateIntrinsicFnWithType("llvm.memcpy", FnTy);
+    llvm_memcpy_fn = CreateIntrinsicFnWithType(Name, FnTy);
   }
 
   if (isMove && !llvm_memmove_fn) {
+    const char *Name = size_tTy == UIntTy ? 
+      "llvm.memmove.i32" : "llvm.memmove.i64";
     llvm_type *FnTy = llvm_type_create_function(4, VoidTy);
     FnTy->Elements[1] = FnTy->Elements[2] = VoidPtrTy;
-    FnTy->Elements[3] = size_tTy = llvm_type_get_from_tree(size_type_node);
+    FnTy->Elements[3] = size_tTy;
     FnTy->Elements[4] = UIntTy;
     FnTy = llvm_type_get_cannonical_function(FnTy);
-    llvm_memmove_fn = CreateIntrinsicFnWithType("llvm.memmove", FnTy);
+    llvm_memmove_fn = CreateIntrinsicFnWithType(Name, FnTy);
   }
   
   I = llvm_instruction_new(VoidTy, "", O_Call, 5);






More information about the llvm-commits mailing list