diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-10-09 12:50:39 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-10-09 12:50:39 +0000 |
commit | 3b73dea538d9c53e205d38bfbcf99dd64306874b (patch) | |
tree | cb437531f3b00fb16a00583bcd10e5850e59b565 /test/CodeGen | |
parent | 0568ba6e3af7ae7eb3ad7871ad0581c926150c8d (diff) | |
download | llvm-3b73dea538d9c53e205d38bfbcf99dd64306874b.tar.gz llvm-3b73dea538d9c53e205d38bfbcf99dd64306874b.tar.bz2 llvm-3b73dea538d9c53e205d38bfbcf99dd64306874b.tar.xz |
[Sparc] Disable tail call optimization for sparc64.
This patch fixes PR17506.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192294 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/SPARC/2011-01-11-Call.ll | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/CodeGen/SPARC/2011-01-11-Call.ll b/test/CodeGen/SPARC/2011-01-11-Call.ll index 7350e92324..a0f478e119 100644 --- a/test/CodeGen/SPARC/2011-01-11-Call.ll +++ b/test/CodeGen/SPARC/2011-01-11-Call.ll @@ -1,4 +1,24 @@ ; RUN: llc -march=sparc -O0 <%s +; RUN: llc -march=sparc <%s | FileCheck %s --check-prefix=V8 +; RUN: llc -march=sparcv9 <%s | FileCheck %s --check-prefix=V9 + +; V8-LABEL: test +; V8: save %sp +; V8: call foo +; V8-NEXT: nop +; V8: call bar +; V8-NEXT: nop +; V8: jmp %i7+8 +; V8-NEXT: restore + +; V9-LABEL: test +; V9: save %sp +; V9: call foo +; V9-NEXT: nop +; V9: call bar +; V9-NEXT: nop +; V9: jmp %i7+8 +; V9-NEXT: restore define void @test() nounwind { entry: @@ -11,3 +31,23 @@ declare i32 @foo(...) declare void @bar(...) + +; V8-LABEL: test_tail_call_with_return +; V8: save %sp +; V8: call foo +; V8-NEXT: nop +; V8: jmp %i7+8 +; V8-NEXT: restore %g0, %o0, %o0 + +; V9-LABEL: test_tail_call_with_return +; V9: save %sp +; V9: call foo +; V9-NEXT: nop +; V9: jmp %i7+8 +; V9-NEXT: restore %g0, %o0, %o0 + +define i32 @test_tail_call_with_return() nounwind { +entry: + %0 = tail call i32 (...)* @foo() nounwind + ret i32 %0 +} |