]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/GC/dynamic-frame-size.ll
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / GC / dynamic-frame-size.ll
1 ; RUN: llc < %s | FileCheck %s
2 target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"
3 target triple = "x86_64-pc-linux-gnu"
4
5 declare void @use(<4 x i8*>*)
6
7 ; Test that a frame which requires dynamic relocation produces a stack map
8 ; with a size of UINT64_MAX.
9 define void @test(i8* %ptr) gc "erlang" {
10    ; 32 byte alignment (for the alloca) is larger than the default
11    ; 16 byte alignment
12    %slot = alloca <4 x i8*>
13    call void @use(<4 x i8*>* %slot);
14    ret void
15 }
16
17 ; CHECK: .note.gc
18 ; CHECK-NEXT: .p2align 3
19 ; safe point count
20 ; CHECK: .short 1
21 ; CHECK: .long  .Ltmp0
22 ; stack frame size (in words)
23 ; CHECK: .short -1
24 ; stack arity (arguments on the stack)
25 ; CHECK: .short 0
26 ; live root count
27 ; CHECK: .short 0
28