Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / ARM / warn-stack.ll
blob3b9afdcbaa5b54dd8c62f5cd0998a6fffb8a7a91
1 ; RUN: llc -mtriple thumbv7-apple-ios3.0.0 < %s 2>&1 >/dev/null | FileCheck %s
2 ; Check the internal option that warns when the stack frame size exceeds the
3 ; given amount.
4 ; <rdar://13987214>
6 ; CHECK-NOT: nowarn
7 define void @nowarn() nounwind ssp "frame-pointer"="all" "warn-stack-size"="80" {
8 entry:
9   %buffer = alloca [12 x i8], align 1
10   call void @doit(ptr %buffer) nounwind
11   ret void
14 ; CHECK: warning: <unknown>:0:0: stack frame size ([[STCK:[0-9]+]]) exceeds limit (80) in function 'warn'
15 define i32 @warn() nounwind ssp "frame-pointer"="all" "warn-stack-size"="80" {
16 entry:
17   %var = alloca i32, align 4
18   %buffer = alloca [80 x i8], align 1
19   call void @doit(ptr %buffer) nounwind
20   call void @doit(ptr %var) nounwind
21   %val = load i32, ptr %var
22   ret i32 %val
25 ; CHECK: warning: <unknown>:0:0: stack frame size ([[STCK:[0-9]+]]) exceeds limit (80) in function 'warn_safestack'
26 define i32 @warn_safestack() nounwind ssp safestack "warn-stack-size"="80" {
27 entry:
28   %var = alloca i32, align 4
29   %a = alloca i32, align 4
30   %buffer = alloca [80 x i8], align 1
31   call void @doit(ptr %buffer) nounwind
32   call void @doit(ptr %var) nounwind
33   %val = load i32, ptr %var
34   ret i32 %val
37 declare void @doit(ptr)