diff options
| author | Tim Northover <tnorthover@apple.com> | 2018-04-05 14:26:06 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2018-04-05 14:26:06 +0000 |
| commit | b30388bf11aa7f95c8a92585130962d5e434406c (patch) | |
| tree | cee4177a649c1af70e14be8d6d95065b0bfba1ce /llvm/test/CodeGen/PowerPC | |
| parent | 62c4805c1f4dbba880fa4fffe85e9e5a4057f798 (diff) | |
| download | bcm5719-llvm-b30388bf11aa7f95c8a92585130962d5e434406c.tar.gz bcm5719-llvm-b30388bf11aa7f95c8a92585130962d5e434406c.zip | |
ARM: Do not spill CSR to stack on entry to noreturn functions
A noreturn nounwind function can be expected to never return in any way, and by
never returning it will also never have to restore any callee-saved registers
for its caller. This makes it possible to skip spills of those registers during
function entry, saving some stack space and time in the process. This is rather
useful for embedded targets with limited stack space.
Should fix PR9970.
Patch by myeisha (pmb).
llvm-svn: 329287
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll b/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll index 2bf4b0722f9..6886b4efa85 100644 --- a/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll +++ b/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll @@ -328,7 +328,7 @@ declare void @somethingElse(...) ; Shift second argument by one and store into returned register. ; ENABLE: slwi 3, 4, 1 ; ENABLE-NEXT: blr -define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) #0 { +define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) nounwind { entry: %tobool = icmp eq i32 %cond, 0 br i1 %tobool, label %if.else, label %if.then |

