summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/TailCallElim/basic.ll
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-04-21 20:48:47 +0000
committerReid Kleckner <reid@kleckner.net>2014-04-21 20:48:47 +0000
commit9b2cc647eba3b64295e34f43534344ac12c94346 (patch)
treebcafcd160de3a2482f3f1c12b1681d7ab46ef455 /llvm/test/Transforms/TailCallElim/basic.ll
parenteb038915ab3ace23cd2a82df688126f780c6ecae (diff)
downloadbcm5719-llvm-9b2cc647eba3b64295e34f43534344ac12c94346.tar.gz
bcm5719-llvm-9b2cc647eba3b64295e34f43534344ac12c94346.zip
Fix PR7272 in -tailcallelim instead of the inliner
The -tailcallelim pass should be checking if byval or inalloca args can be captured before marking calls as tail calls. This was the real root cause of PR7272. With a better fix in place, revert the inliner change from r105255. The test case it introduced still passes and has been moved to test/Transforms/Inline/byval-tail-call.ll. Reviewers: chandlerc Differential Revision: http://reviews.llvm.org/D3403 llvm-svn: 206789
Diffstat (limited to 'llvm/test/Transforms/TailCallElim/basic.ll')
-rw-r--r--llvm/test/Transforms/TailCallElim/basic.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/Transforms/TailCallElim/basic.ll b/llvm/test/Transforms/TailCallElim/basic.ll
index 35420ab08c3..5582ee33edc 100644
--- a/llvm/test/Transforms/TailCallElim/basic.ll
+++ b/llvm/test/Transforms/TailCallElim/basic.ll
@@ -143,3 +143,11 @@ cond_false:
call void @noarg()
ret i32* null
}
+
+; Don't tail call if a byval arg is captured.
+define void @test9(i32* byval %a) {
+; CHECK-LABEL: define void @test9(
+; CHECK: {{^ *}}call void @use(
+ call void @use(i32* %a)
+ ret void
+}
OpenPOWER on IntegriCloud