[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c
Chris Lattner
lattner at cs.uiuc.edu
Thu Apr 13 11:21:25 PDT 2006
Changes in directory llvm-gcc/gcc:
llvm-expand.c updated: 1.127 -> 1.128
---
Log message:
Add appropriate type suffix for llvm.memset also, for PR733: http://llvm.cs.uiuc.edu/PR733
---
Diffs of the changes: (+10 -4)
llvm-expand.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
Index: llvm-gcc/gcc/llvm-expand.c
diff -u llvm-gcc/gcc/llvm-expand.c:1.127 llvm-gcc/gcc/llvm-expand.c:1.128
--- llvm-gcc/gcc/llvm-expand.c:1.127 Thu Apr 13 13:17:55 2006
+++ llvm-gcc/gcc/llvm-expand.c Thu Apr 13 13:21:13 2006
@@ -344,11 +344,11 @@
unsigned Alignment, int isMove) {
static llvm_function *llvm_memcpy_fn = 0, *llvm_memmove_fn = 0;
static llvm_type *size_tTy = 0;
+ llvm_instruction *I;
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";
@@ -387,16 +387,22 @@
llvm_value *Size, unsigned Alignment) {
static llvm_function *llvm_memset_fn = 0;
static llvm_type *size_tTy = 0;
-
llvm_instruction *I;
+
+ if (size_tTy == 0)
+ size_tTy = llvm_type_get_from_tree(size_type_node);
+
if (!llvm_memset_fn) {
+ const char *Name = size_tTy == UIntTy ?
+ "llvm.memset.i32" : "llvm.memset.i64";
+
llvm_type *FnTy = llvm_type_create_function(4, VoidTy);
FnTy->Elements[1] = VoidPtrTy;
FnTy->Elements[2] = UByteTy;
- 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_memset_fn = CreateIntrinsicFnWithType("llvm.memset", FnTy);
+ llvm_memset_fn = CreateIntrinsicFnWithType(Name, FnTy);
}
I = llvm_instruction_new(VoidTy, "", O_Call, 5);
More information about the llvm-commits
mailing list