blob: a467bfa3a1af43acf88f1d86c02b2effacf9ad8e [file] [log] [blame]
Matthias Braun538859c2016-07-16 02:24:59 +00001# RUN: llc -run-pass none -o - %s | FileCheck %s
Alex Lorenz60541c12015-07-09 19:55:27 +00002# This test ensures that the MIR parser parses machine frame info properties
3# correctly.
4
5--- |
6
7 define i32 @test(i32 %a) {
8 entry:
9 %b = alloca i32
10 store i32 %a, i32* %b
11 %c = load i32, i32* %b
12 ret i32 %c
13 }
14
15 define i32 @test2(i32 %a) {
16 entry:
17 %b = alloca i32
18 store i32 %a, i32* %b
19 %c = load i32, i32* %b
20 ret i32 %c
21 }
22
23...
24---
25name: test
Alex Lorenz60541c12015-07-09 19:55:27 +000026tracksRegLiveness: true
27
28# CHECK: frameInfo:
29# CHECK-NEXT: isFrameAddressTaken: false
30# CHECK-NEXT: isReturnAddressTaken: false
31# CHECK-NEXT: hasStackMap: false
32# CHECK-NEXT: hasPatchPoint: false
33# CHECK-NEXT: stackSize: 0
34# CHECK-NEXT: offsetAdjustment: 0
35# Note: max alignment can be target specific when printed.
36# CHECK-NEXT: maxAlignment:
37# CHECK-NEXT: adjustsStack: false
38# CHECK-NEXT: hasCalls: false
Vivek Pandya56d87ef2017-06-06 08:16:19 +000039# CHECK-NEXT: stackProtector: ''
40# CHECK-NEXT: maxCallFrameSize:
Alex Lorenz60541c12015-07-09 19:55:27 +000041# CHECK-NEXT: hasOpaqueSPAdjustment: false
42# CHECK-NEXT: hasVAStart: false
43# CHECK-NEXT: hasMustTailInVarArgFunc: false
Vivek Pandya56d87ef2017-06-06 08:16:19 +000044# CHECK-NEXT: savePoint: ''
45# CHECK-NEXT: restorePoint: ''
Alex Lorenz60541c12015-07-09 19:55:27 +000046# CHECK: body
47frameInfo:
48 maxAlignment: 4
Alex Lorenz5022f6b2015-08-13 23:10:16 +000049body: |
50 bb.0.entry:
Alex Lorenz60541c12015-07-09 19:55:27 +000051...
52---
53name: test2
Alex Lorenz60541c12015-07-09 19:55:27 +000054tracksRegLiveness: true
55
56# CHECK: test2
57# CHECK: frameInfo:
58# CHECK-NEXT: isFrameAddressTaken: true
59# CHECK-NEXT: isReturnAddressTaken: true
60# CHECK-NEXT: hasStackMap: true
61# CHECK-NEXT: hasPatchPoint: true
62# CHECK-NEXT: stackSize: 4
63# CHECK-NEXT: offsetAdjustment: 4
64# Note: max alignment can be target specific when printed.
65# CHECK-NEXT: maxAlignment:
66# CHECK-NEXT: adjustsStack: true
67# CHECK-NEXT: hasCalls: true
Vivek Pandya56d87ef2017-06-06 08:16:19 +000068# CHECK-NEXT: stackProtector: ''
Alex Lorenz60541c12015-07-09 19:55:27 +000069# CHECK-NEXT: maxCallFrameSize: 4
70# CHECK-NEXT: hasOpaqueSPAdjustment: true
71# CHECK-NEXT: hasVAStart: true
72# CHECK-NEXT: hasMustTailInVarArgFunc: true
73# CHECK: body
74frameInfo:
75 isFrameAddressTaken: true
76 isReturnAddressTaken: true
77 hasStackMap: true
78 hasPatchPoint: true
79 stackSize: 4
80 offsetAdjustment: 4
81 maxAlignment: 4
82 adjustsStack: true
83 hasCalls: true
84 maxCallFrameSize: 4
85 hasOpaqueSPAdjustment: true
86 hasVAStart: true
87 hasMustTailInVarArgFunc: true
Alex Lorenz5022f6b2015-08-13 23:10:16 +000088body: |
89 bb.0.entry:
Alex Lorenz60541c12015-07-09 19:55:27 +000090...
91