aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-11-13 18:49:38 +0000
committerDan Gohman <gohman@apple.com>2009-11-13 18:49:38 +0000
commit01205a80f5c789234029813f8c09488891c0b23e (patch)
treeede7e5766fcd020c24a0bda846877edc8108eb1d /test
parent0d1680a7d886e2148f3d54c0095bf946544a741f (diff)
downloadexternal_llvm-01205a80f5c789234029813f8c09488891c0b23e.zip
external_llvm-01205a80f5c789234029813f8c09488891c0b23e.tar.gz
external_llvm-01205a80f5c789234029813f8c09488891c0b23e.tar.bz2
Don't let a noalias difference disrupt the tailcall optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/tailcall1.ll16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/CodeGen/X86/tailcall1.ll b/test/CodeGen/X86/tailcall1.ll
index a4f87c0..215d009 100644
--- a/test/CodeGen/X86/tailcall1.ll
+++ b/test/CodeGen/X86/tailcall1.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL
+; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 3
define fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) {
entry:
ret i32 %a3
@@ -9,3 +9,17 @@ entry:
%tmp11 = tail call fastcc i32 @tailcallee( i32 %in1, i32 %in2, i32 %in1, i32 %in2 ) ; <i32> [#uses=1]
ret i32 %tmp11
}
+
+declare fastcc i8* @alias_callee()
+
+define fastcc noalias i8* @noalias_caller() nounwind {
+ %p = tail call fastcc i8* @alias_callee()
+ ret i8* %p
+}
+
+declare fastcc noalias i8* @noalias_callee()
+
+define fastcc i8* @alias_caller() nounwind {
+ %p = tail call fastcc noalias i8* @noalias_callee()
+ ret i8* %p
+}