| ; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s |
| |
| ; When a function does a dynamic stack allocation, the function's stack size |
| ; is reported as UINT64_MAX. |
| |
| ; CHECK-LABEL: .section .llvm_stackmaps |
| ; CHECK-NEXT: __LLVM_StackMaps: |
| ; Header |
| ; CHECK-NEXT: .byte 3 |
| ; CHECK-NEXT: .byte 0 |
| ; CHECK-NEXT: .hword 0 |
| ; Num Functions |
| ; CHECK-NEXT: .word 1 |
| ; Num LargeConstants |
| ; CHECK-NEXT: .word 0 |
| ; Num Callsites |
| ; CHECK-NEXT: .word 1 |
| |
| ; Functions and stack size |
| ; CHECK-NEXT: .xword f |
| ; CHECK-NEXT: .xword -1 |
| |
| define void @f(i32 %nelems) { |
| entry: |
| %mem = alloca i32, i32 %nelems |
| call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0, ptr %mem) |
| ret void |
| } |
| |
| declare void @llvm.experimental.stackmap(i64, i32, ...) |