summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2018-04-07 05:36:44 +0000
committerVitaly Buka <vitalybuka@google.com>2018-04-07 05:36:44 +0000
commitde5f196530b508df3bc8c035ae1db87b56437d88 (patch)
tree7f702512cbfb50729ca134d7dadbad1efb364c96 /llvm/test
parentd1324fdff005fd267630c004760a544dabad8357 (diff)
downloadbcm5719-llvm-de5f196530b508df3bc8c035ae1db87b56437d88.tar.gz
bcm5719-llvm-de5f196530b508df3bc8c035ae1db87b56437d88.zip
Revert "ARM: Do not spill CSR to stack on entry to noreturn functions"
Breaks ubsan test TestCases/Misc/missing_return.cpp on ARM This reverts commit r329287 llvm-svn: 329486
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll4
-rw-r--r--llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll2
-rw-r--r--llvm/test/CodeGen/ARM/noreturn-csr-skip.mir51
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll2
-rw-r--r--llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll2
-rw-r--r--llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll10
-rw-r--r--llvm/test/CodeGen/X86/x86-shrink-wrapping.ll2
7 files changed, 11 insertions, 62 deletions
diff --git a/llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll b/llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
index 7ae739ebf4d..0253229c0d7 100644
--- a/llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
@@ -281,7 +281,7 @@ declare void @somethingElse(...)
; Shift second argument by one and store into returned register.
; ENABLE: lsl w0, w1, #1
; ENABLE: ret
-define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) nounwind {
+define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) #0 {
entry:
%tobool = icmp eq i32 %cond, 0
br i1 %tobool, label %if.else, label %if.then
@@ -355,7 +355,7 @@ entry:
; CHECK-NEXT: lsl w0, w1, #1
; DISABLE-NEXT: add sp, sp, #16
; CHECK-NEXT: ret
-define i32 @variadicFunc(i32 %cond, i32 %count, ...) nounwind {
+define i32 @variadicFunc(i32 %cond, i32 %count, ...) #0 {
entry:
%ap = alloca i8*, align 8
%tobool = icmp eq i32 %cond, 0
diff --git a/llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll b/llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
index c943f60c56d..1985ff9b4a2 100644
--- a/llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
+++ b/llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
@@ -327,7 +327,7 @@ declare void @somethingElse(...)
; DISABLE-NEXT: pop {r4, r7, pc}
;
; ENABLE-NEXT: bx lr
-define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) "no-frame-pointer-elim"="true" nounwind {
+define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) "no-frame-pointer-elim"="true" #0 {
entry:
%tobool = icmp eq i32 %cond, 0
br i1 %tobool, label %if.else, label %if.then
diff --git a/llvm/test/CodeGen/ARM/noreturn-csr-skip.mir b/llvm/test/CodeGen/ARM/noreturn-csr-skip.mir
deleted file mode 100644
index c3b9718ac9e..00000000000
--- a/llvm/test/CodeGen/ARM/noreturn-csr-skip.mir
+++ /dev/null
@@ -1,51 +0,0 @@
-# RUN: llc -mtriple thumbv7m-none-eabi -run-pass prologepilog %s -o - | FileCheck %s
-
---- |
- define void @throw() noreturn { unreachable }
-
- define void @ret() nounwind { ret void }
-
- define void @noret() noreturn nounwind {
- start:
- %p = alloca i32
- store i32 42, i32* %p
- unreachable
- }
-...
----
-# This function may return by exception. Check that $r4 is saved and restored.
-# CHECK-LABEL: name: throw
-# CHECK: killed $r4
-# CHECK: def $r4
-name: throw
-body: |
- bb.0:
- $r4 = IMPLICIT_DEF
- tBX_RET 14, $noreg
----
----
-# This function may return. Check that $r4 is saved and restored.
-# CHECK-LABEL: name: ret
-# CHECK: killed $r4
-# CHECK: def $r4
-name: ret
-body: |
- bb.0:
- $r4 = IMPLICIT_DEF
- tBX_RET 14, $noreg
----
----
-# This function does not return. We need not save any CSR, but
-# other stack adjustments in the prologue are still necessary.
-# CHECK-LABEL: name: noret
-# CHECK-NOT: killed $r4
-# CHECK-NOT: def $r4
-# CHECK: $sp = frame-setup
-name: noret
-stack:
- - { id: 0, name: p, offset: 0, size: 4, alignment: 4, local-offset: -4 }
-body: |
- bb.0:
- $r4 = IMPLICIT_DEF
- tBX_RET 14, $noreg
----
diff --git a/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll b/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll
index 6886b4efa85..2bf4b0722f9 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) nounwind {
+define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) #0 {
entry:
%tobool = icmp eq i32 %cond, 0
br i1 %tobool, label %if.else, label %if.then
diff --git a/llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll b/llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
index 5d93f30f417..471626251d5 100644
--- a/llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
+++ b/llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
@@ -374,7 +374,7 @@ declare void @somethingElse(...)
;
; ENABLE-V5T-NEXT: {{LBB[0-9_]+}}: @ %if.end
; ENABLE-NEXT: bx lr
-define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) nounwind {
+define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) #0 {
entry:
%tobool = icmp eq i32 %cond, 0
br i1 %tobool, label %if.else, label %if.then
diff --git a/llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll b/llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
index 9d3e18efea2..c3b12edf4ce 100644
--- a/llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
+++ b/llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
@@ -17,10 +17,10 @@
%tupl = type [9 x i32]
-declare fastcc void @l297(i32 %r10, i32 %r9, i32 %r8, i32 %r7, i32 %r6, i32 %r5, i32 %r3, i32 %r2) nounwind
-declare fastcc void @l298(i32 %r10, i32 %r9, i32 %r4) nounwind
+declare fastcc void @l297(i32 %r10, i32 %r9, i32 %r8, i32 %r7, i32 %r6, i32 %r5, i32 %r3, i32 %r2) noreturn nounwind
+declare fastcc void @l298(i32 %r10, i32 %r9, i32 %r4) noreturn nounwind
-define fastcc void @l186(%tupl* %r1) nounwind {
+define fastcc void @l186(%tupl* %r1) noreturn nounwind {
entry:
%ptr1 = getelementptr %tupl, %tupl* %r1, i32 0, i32 0
%r2 = load i32, i32* %ptr1
@@ -44,10 +44,10 @@ entry:
br i1 %cond, label %true, label %false
true:
- tail call fastcc void @l297(i32 %r10, i32 %r9, i32 %r8, i32 %r7, i32 %r6, i32 %r5, i32 %r3, i32 %r2) nounwind
+ tail call fastcc void @l297(i32 %r10, i32 %r9, i32 %r8, i32 %r7, i32 %r6, i32 %r5, i32 %r3, i32 %r2) noreturn nounwind
ret void
false:
- tail call fastcc void @l298(i32 %r10, i32 %r9, i32 %r4) nounwind
+ tail call fastcc void @l298(i32 %r10, i32 %r9, i32 %r4) noreturn nounwind
ret void
}
diff --git a/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll b/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll
index cc77efae091..65a5c78a5da 100644
--- a/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll
+++ b/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll
@@ -314,7 +314,7 @@ if.end: ; preds = %if.else, %for.end
; ENABLE: addl %esi, %esi
; ENABLE-NEXT: movl %esi, %eax
; ENABLE-NEXT: retq
-define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) nounwind {
+define i32 @loopInfoRestoreOutsideLoop(i32 %cond, i32 %N) #0 {
entry:
%tobool = icmp eq i32 %cond, 0
br i1 %tobool, label %if.else, label %if.then
OpenPOWER on IntegriCloud