diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-06-01 20:42:48 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-06-01 20:42:48 +0000 |
commit | 28e2cd0e7e2afeefed417bf9b33cf0d8552f15f5 (patch) | |
tree | 5f84be1ca162dabee1a583fb34360767ec896be8 /llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll | |
parent | 91142c485e1f3d03408d03077f53e2b71f28f7ce (diff) | |
download | bcm5719-llvm-28e2cd0e7e2afeefed417bf9b33cf0d8552f15f5.tar.gz bcm5719-llvm-28e2cd0e7e2afeefed417bf9b33cf0d8552f15f5.zip |
Sparc: Mark functions calling llvm.vastart and llvm.returnaddress intrinsics as non-leaf functions.
llvm-svn: 183079
Diffstat (limited to 'llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll')
-rw-r--r-- | llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll b/llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll index 9e6583ca2ce..e8ade985e3c 100644 --- a/llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll +++ b/llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll @@ -2,6 +2,9 @@ ;RUN: llc -march=sparc -mattr=v9 < %s | FileCheck %s -check-prefix=V9 ;RUN: llc -march=sparc -regalloc=basic < %s | FileCheck %s -check-prefix=V8 ;RUN: llc -march=sparc -regalloc=basic -mattr=v9 < %s | FileCheck %s -check-prefix=V9 +;RUN: llc -march=sparc -disable-sparc-leaf-proc=0 < %s | FileCheck %s -check-prefix=V8LEAF +;RUN: llc -march=sparc -disable-sparc-leaf-proc=0 -mattr=v9 < %s | FileCheck %s -check-prefix=V9LEAF + define i8* @frameaddr() nounwind readnone { entry: @@ -42,6 +45,13 @@ entry: ;V9: retaddr ;V9: or %g0, %i7, {{.+}} + +;V8LEAF: retaddr: +;V8LEAF: or %g0, %o7, %o0 + +;V9LEAF: retaddr: +;V9LEAF: or %g0, %o7, %o0 + %0 = tail call i8* @llvm.returnaddress(i32 0) ret i8* %0 } @@ -59,6 +69,19 @@ entry: ;V9: ld [%fp+56], {{.+}} ;V9: ld [{{.+}}+56], {{.+}} ;V9: ld [{{.+}}+60], {{.+}} + +;V8LEAF: retaddr2 +;V8LEAF: ta 3 +;V8LEAF: ld [%fp+56], %[[R:[goli][0-7]]] +;V8LEAF: ld [%[[R]]+56], %[[R1:[goli][0-7]]] +;V8LEAF: ld [%[[R1]]+60], {{.+}} + +;V9LEAF: retaddr2 +;V9LEAF: flushw +;V9LEAF: ld [%fp+56], %[[R:[goli][0-7]]] +;V9LEAF: ld [%[[R]]+56], %[[R1:[goli][0-7]]] +;V9LEAF: ld [%[[R1]]+60], {{.+}} + %0 = tail call i8* @llvm.returnaddress(i32 3) ret i8* %0 } |