xref: /aosp_15_r20/external/llvm/test/CodeGen/MIR/Generic/frame-info.mir (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llc -start-after machine-sink -stop-after machine-sink -o - %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker# This test ensures that the MIR parser parses machine frame info properties
3*9880d681SAndroid Build Coastguard Worker# correctly.
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker--- |
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker  define i32 @test(i32 %a) {
8*9880d681SAndroid Build Coastguard Worker  entry:
9*9880d681SAndroid Build Coastguard Worker    %b = alloca i32
10*9880d681SAndroid Build Coastguard Worker    store i32 %a, i32* %b
11*9880d681SAndroid Build Coastguard Worker    %c = load i32, i32* %b
12*9880d681SAndroid Build Coastguard Worker    ret i32 %c
13*9880d681SAndroid Build Coastguard Worker  }
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker  define i32 @test2(i32 %a) {
16*9880d681SAndroid Build Coastguard Worker  entry:
17*9880d681SAndroid Build Coastguard Worker    %b = alloca i32
18*9880d681SAndroid Build Coastguard Worker    store i32 %a, i32* %b
19*9880d681SAndroid Build Coastguard Worker    %c = load i32, i32* %b
20*9880d681SAndroid Build Coastguard Worker    ret i32 %c
21*9880d681SAndroid Build Coastguard Worker  }
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker...
24*9880d681SAndroid Build Coastguard Worker---
25*9880d681SAndroid Build Coastguard Workername:            test
26*9880d681SAndroid Build Coastguard WorkerisSSA:           true
27*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker# CHECK: frameInfo:
30*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isFrameAddressTaken: false
31*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isReturnAddressTaken: false
32*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasStackMap: false
33*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasPatchPoint: false
34*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: stackSize: 0
35*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: offsetAdjustment: 0
36*9880d681SAndroid Build Coastguard Worker# Note: max alignment can be target specific when printed.
37*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxAlignment:
38*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: adjustsStack: false
39*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasCalls: false
40*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxCallFrameSize: 0
41*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasOpaqueSPAdjustment: false
42*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasVAStart: false
43*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasMustTailInVarArgFunc: false
44*9880d681SAndroid Build Coastguard Worker# CHECK: body
45*9880d681SAndroid Build Coastguard WorkerframeInfo:
46*9880d681SAndroid Build Coastguard Worker  maxAlignment:    4
47*9880d681SAndroid Build Coastguard Workerbody: |
48*9880d681SAndroid Build Coastguard Worker  bb.0.entry:
49*9880d681SAndroid Build Coastguard Worker...
50*9880d681SAndroid Build Coastguard Worker---
51*9880d681SAndroid Build Coastguard Workername:            test2
52*9880d681SAndroid Build Coastguard WorkerisSSA:           true
53*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker# CHECK: test2
56*9880d681SAndroid Build Coastguard Worker# CHECK: frameInfo:
57*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isFrameAddressTaken: true
58*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isReturnAddressTaken: true
59*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasStackMap: true
60*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasPatchPoint: true
61*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: stackSize: 4
62*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: offsetAdjustment: 4
63*9880d681SAndroid Build Coastguard Worker# Note: max alignment can be target specific when printed.
64*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxAlignment:
65*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: adjustsStack: true
66*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasCalls: true
67*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxCallFrameSize: 4
68*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasOpaqueSPAdjustment: true
69*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasVAStart: true
70*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasMustTailInVarArgFunc: true
71*9880d681SAndroid Build Coastguard Worker# CHECK: body
72*9880d681SAndroid Build Coastguard WorkerframeInfo:
73*9880d681SAndroid Build Coastguard Worker  isFrameAddressTaken: true
74*9880d681SAndroid Build Coastguard Worker  isReturnAddressTaken: true
75*9880d681SAndroid Build Coastguard Worker  hasStackMap:     true
76*9880d681SAndroid Build Coastguard Worker  hasPatchPoint:   true
77*9880d681SAndroid Build Coastguard Worker  stackSize:       4
78*9880d681SAndroid Build Coastguard Worker  offsetAdjustment: 4
79*9880d681SAndroid Build Coastguard Worker  maxAlignment:    4
80*9880d681SAndroid Build Coastguard Worker  adjustsStack:    true
81*9880d681SAndroid Build Coastguard Worker  hasCalls:        true
82*9880d681SAndroid Build Coastguard Worker  maxCallFrameSize: 4
83*9880d681SAndroid Build Coastguard Worker  hasOpaqueSPAdjustment: true
84*9880d681SAndroid Build Coastguard Worker  hasVAStart:      true
85*9880d681SAndroid Build Coastguard Worker  hasMustTailInVarArgFunc: true
86*9880d681SAndroid Build Coastguard Workerbody: |
87*9880d681SAndroid Build Coastguard Worker  bb.0.entry:
88*9880d681SAndroid Build Coastguard Worker...
89*9880d681SAndroid Build Coastguard Worker
90