[MC] Fix -stack-size-section on ARM

Change symbol values in the stack_size section from being 8 bytes, to being a target dependent size.

Differential Revision: https://reviews.llvm.org/D42108

llvm-svn: 322619
diff --git a/llvm/test/CodeGen/ARM/stack-size-section.ll b/llvm/test/CodeGen/ARM/stack-size-section.ll
new file mode 100644
index 0000000..8514334
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/stack-size-section.ll
@@ -0,0 +1,30 @@
+; RUN: llc < %s -mtriple=armv7-linux -stack-size-section | FileCheck %s

+

+; CHECK-LABEL: func1:

+; CHECK: .section .stack_sizes,"",%progbits

+; CHECK-NEXT: .long func1

+; CHECK-NEXT: .byte 8

+define void @func1(i32, i32) #0 {

+  alloca i32, align 4

+  alloca i32, align 4

+  ret void

+}

+

+; CHECK-LABEL: func2:

+; CHECK: .section .stack_sizes,"",%progbits

+; CHECK-NEXT: .long func2

+; CHECK-NEXT: .byte 16

+define void @func2() #0 {

+  alloca i32, align 4

+  call void @func1(i32 1, i32 2)

+  ret void

+}

+

+; CHECK-LABEL: dynalloc:

+; CHECK-NOT: .section .stack_sizes

+define void @dynalloc(i32 %N) #0 {

+  alloca i32, i32 %N

+  ret void

+}

+

+attributes #0 = { "no-frame-pointer-elim"="true" }