diff options
author | Evan Cheng <evan.cheng@apple.com> | 2010-02-06 03:28:46 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2010-02-06 03:28:46 +0000 |
commit | f22f9b35d6e6444028ed288bfae526f53740b5c1 (patch) | |
tree | c276c6e63fd5d9948bf7bef438ce697af69738bd /test | |
parent | a65aa0f0bba1ef2322d63d05c074a92168684c63 (diff) | |
download | external_llvm-f22f9b35d6e6444028ed288bfae526f53740b5c1.zip external_llvm-f22f9b35d6e6444028ed288bfae526f53740b5c1.tar.gz external_llvm-f22f9b35d6e6444028ed288bfae526f53740b5c1.tar.bz2 |
Do not emit callseq instructions around sibcalls. This eliminated some unnecessary stack adjustments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95475 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/call-push.ll | 7 | ||||
-rw-r--r-- | test/CodeGen/X86/tailcall2.ll | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/test/CodeGen/X86/call-push.ll b/test/CodeGen/X86/call-push.ll index 81516c1..02cbccc 100644 --- a/test/CodeGen/X86/call-push.ll +++ b/test/CodeGen/X86/call-push.ll @@ -1,9 +1,14 @@ -; RUN: llc < %s -mtriple=i386-apple-darwin -disable-fp-elim | grep subl | count 1 +; RUN: llc < %s -mtriple=i386-apple-darwin -disable-fp-elim | FileCheck %s %struct.decode_t = type { i8, i8, i8, i8, i16, i8, i8, %struct.range_t** } %struct.range_t = type { float, float, i32, i32, i32, [0 x i8] } define i32 @decode_byte(%struct.decode_t* %decode) nounwind { +; CHECK: decode_byte: +; CHECK: pushl +; CHECK: popl +; CHECK: popl +; CHECK: jmp entry: %tmp2 = getelementptr %struct.decode_t* %decode, i32 0, i32 4 ; <i16*> [#uses=1] %tmp23 = bitcast i16* %tmp2 to i32* ; <i32*> [#uses=1] diff --git a/test/CodeGen/X86/tailcall2.ll b/test/CodeGen/X86/tailcall2.ll index b2fe9d3..02bf0c0 100644 --- a/test/CodeGen/X86/tailcall2.ll +++ b/test/CodeGen/X86/tailcall2.ll @@ -146,9 +146,13 @@ define i32 @t11(i32 %x, i32 %y, i32 %z.0, i32 %z.1, i32 %z.2) nounwind ssp { ; eliminated currently. ; 32: t11: +; 32-NOT: subl ${{[0-9]+}}, %esp +; 32-NOT: addl ${{[0-9]+}}, %esp ; 32: jmp {{_?}}foo5 ; 64: t11: +; 64-NOT: subq ${{[0-9]+}}, %esp +; 64-NOT: addq ${{[0-9]+}}, %esp ; 64: jmp {{_?}}foo5 entry: %0 = icmp eq i32 %x, 0 @@ -168,9 +172,13 @@ declare i32 @foo5(i32, i32, i32, i32, i32) define i32 @t12(i32 %x, i32 %y, %struct.t* byval align 4 %z) nounwind ssp { ; 32: t12: +; 32-NOT: subl ${{[0-9]+}}, %esp +; 32-NOT: addl ${{[0-9]+}}, %esp ; 32: jmp {{_?}}foo6 ; 64: t12: +; 64-NOT: subq ${{[0-9]+}}, %esp +; 64-NOT: addq ${{[0-9]+}}, %esp ; 64: jmp {{_?}}foo6 entry: %0 = icmp eq i32 %x, 0 |