Revert "MergeFuncs: Transfer the function parameter attributes to the call site"
authorArnold Schwaighofer <aschwaighofer@apple.com>
Sun, 19 Jul 2015 19:30:43 +0000 (19:30 +0000)
committerArnold Schwaighofer <aschwaighofer@apple.com>
Sun, 19 Jul 2015 19:30:43 +0000 (19:30 +0000)
It is okay to not transfer parameter attributes.

This reverts commit r242558.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242646 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/MergeFunctions.cpp
test/Transforms/MergeFunc/apply_function_attributes.ll [deleted file]
test/Transforms/MergeFunc/inttoptr-address-space.ll
test/Transforms/MergeFunc/inttoptr.ll

index a0654bd68cf65527fac535ec9edd5bc40ee1f4a3..109cac7fece73e82a39723837bef8c92775a442b 100644 (file)
@@ -1361,7 +1361,6 @@ void MergeFunctions::writeThunk(Function *F, Function *G) {
   CallInst *CI = Builder.CreateCall(F, Args);
   CI->setTailCall();
   CI->setCallingConv(F->getCallingConv());
-  CI->setAttributes(F->getAttributes());
   if (NewG->getReturnType()->isVoidTy()) {
     Builder.CreateRetVoid();
   } else {
diff --git a/test/Transforms/MergeFunc/apply_function_attributes.ll b/test/Transforms/MergeFunc/apply_function_attributes.ll
deleted file mode 100644 (file)
index 9995d15..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: opt -S -mergefunc < %s | FileCheck %s
-%Si = type <{ i32 }>
-
-define void @sum(%Si* noalias sret %a, i32 %x, i32 %y) {
-  %sum = add i32 %x, %y
-  %sum2 = add i32 %sum, %y
-  %sum3 = add i32 %sum2, %y
-  ret void
-}
-
-define void @add(%Si* noalias sret %a, i32 %x, i32 %y) {
-  %sum = add i32 %x, %y
-  %sum2 = add i32 %sum, %y
-  %sum3 = add i32 %sum2, %y
-  ret void
-}
-
-; Make sure we transfer the parameter attributes to the call site.
-
-; CHECK-LABEL: define void @sum(%Si* noalias sret, i32, i32)
-; CHECK: tail call void @add(%Si* noalias sret %{{.*}}, i32 %{{.*}}, i32 %{{.*}})
-; CHECK: ret void
index 86deb2c9495347c310e67eacb3f14f16ea3437fc..5f672debd919b8081842ed13142fcf6b1cbc5e8a 100644 (file)
@@ -21,7 +21,7 @@ define internal i8* @func35(%.qux.2585 addrspace(1)* nocapture %this) align 2 {
 bb:
 ; CHECK-LABEL: @func35(
 ; CHECK: %[[V2:.+]] = bitcast %.qux.2585 addrspace(1)* %{{.*}} to %.qux.2496 addrspace(1)*
-; CHECK: %[[V3:.+]] = tail call i32 @func10(%.qux.2496 addrspace(1)* nocapture %[[V2]])
+; CHECK: %[[V3:.+]] = tail call i32 @func10(%.qux.2496 addrspace(1)* %[[V2]])
 ; CHECK: %{{.*}} = inttoptr i32 %[[V3]] to i8*
   %tmp = getelementptr inbounds %.qux.2585, %.qux.2585 addrspace(1)* %this, i32 0, i32 2
   %tmp1 = load i8*, i8* addrspace(1)* %tmp, align 4
index 05ae766a6e3748a5c959bf68a6b7fc92257a4536..0abbf6239a3417ad1b8177f29190d57a4ab230e2 100644 (file)
@@ -48,7 +48,7 @@ define internal i8* @func35(%.qux.2585* nocapture %this) align 2 {
 bb:
 ; CHECK-LABEL: @func35(
 ; CHECK: %[[V2:.+]] = bitcast %.qux.2585* %{{.*}} to %.qux.2496*
-; CHECK: %[[V3:.+]] = tail call i32 @func10(%.qux.2496* nocapture %[[V2]])
+; CHECK: %[[V3:.+]] = tail call i32 @func10(%.qux.2496* %[[V2]])
 ; CHECK: %{{.*}} = inttoptr i32 %[[V3]] to i8*
   %tmp = getelementptr inbounds %.qux.2585, %.qux.2585* %this, i32 0, i32 2
   %tmp1 = load i8*, i8** %tmp, align 4