diff options
author | Dan Gohman <gohman@apple.com> | 2010-08-28 00:51:03 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-08-28 00:51:03 +0000 |
commit | badcda4afa35bf86ce2e6e77ca20f1ce2365b549 (patch) | |
tree | 6753af186a4072f780f2b303d429070ca07b379d /test | |
parent | 7258df71fa21483f03d3804164c57f32cfc22e01 (diff) | |
download | external_llvm-badcda4afa35bf86ce2e6e77ca20f1ce2365b549.zip external_llvm-badcda4afa35bf86ce2e6e77ca20f1ce2365b549.tar.gz external_llvm-badcda4afa35bf86ce2e6e77ca20f1ce2365b549.tar.bz2 |
Completely disable tail calls when fast-isel is enabled, as fast-isel
doesn't currently support dealing with this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112341 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/tailcall-fastisel.ll | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/test/CodeGen/X86/tailcall-fastisel.ll b/test/CodeGen/X86/tailcall-fastisel.ll index d54fb41..7f92af4 100644 --- a/test/CodeGen/X86/tailcall-fastisel.ll +++ b/test/CodeGen/X86/tailcall-fastisel.ll @@ -1,8 +1,6 @@ -; RUN: llc < %s -march=x86-64 -tailcallopt -fast-isel | grep TAILCALL +; RUN: llc < %s -march=x86-64 -tailcallopt -fast-isel | not grep TAILCALL -; Fast-isel shouldn't attempt to handle this tail call, and it should -; cleanly terminate instruction selection in the block after it's -; done to avoid emitting invalid MachineInstrs. +; Fast-isel shouldn't attempt to cope with tail calls. %0 = type { i64, i32, i8* } @@ -11,3 +9,11 @@ fail: ; preds = %entry %tmp20 = tail call fastcc i8* @"visit_array_aux<`Reference>"(%0 %arg, i32 undef) ; <i8*> [#uses=1] ret i8* %tmp20 } + +define i32 @foo() nounwind { +entry: + %0 = tail call i32 (...)* @bar() nounwind ; <i32> [#uses=1] + ret i32 %0 +} + +declare i32 @bar(...) nounwind |