Skip to content

Commit 7564566

Browse files
committed
Reapply "Move assertion for AdjustsStack from PEI to MachineVerifier (#85698)"
- The check is now actually done in both PEI and the MachineVerifier. - More .mir tests trivially updated with "adjustsStack: true" as needed.
1 parent 3942bd2 commit 7564566

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+92
-9
lines changed

llvm/lib/CodeGen/MachineVerifier.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3697,6 +3697,9 @@ void MachineVerifier::verifyStackFrame() {
36973697
if (I.getOpcode() == FrameSetupOpcode) {
36983698
if (BBState.ExitIsSetup)
36993699
report("FrameSetup is after another FrameSetup", &I);
3700+
if (!MRI->isSSA() && !MF->getFrameInfo().adjustsStack())
3701+
report("AdjustsStack not set in presence of a frame pseudo "
3702+
"instruction.", &I);
37003703
BBState.ExitValue -= TII->getFrameTotalSize(I);
37013704
BBState.ExitIsSetup = true;
37023705
}
@@ -3712,6 +3715,9 @@ void MachineVerifier::verifyStackFrame() {
37123715
errs() << "FrameDestroy <" << Size << "> is after FrameSetup <"
37133716
<< AbsSPAdj << ">.\n";
37143717
}
3718+
if (!MRI->isSSA() && !MF->getFrameInfo().adjustsStack())
3719+
report("AdjustsStack not set in presence of a frame pseudo "
3720+
"instruction.", &I);
37153721
BBState.ExitValue += Size;
37163722
BBState.ExitIsSetup = false;
37173723
}

llvm/test/CodeGen/AArch64/clear-dead-implicit-def-impdef.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
---
44
name: func
55
tracksRegLiveness: true
6+
frameInfo:
7+
adjustsStack: true
68
body: |
79
bb.0:
810
liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6

llvm/test/CodeGen/AArch64/implicit-def-remat-requires-impdef-check.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
name: inst_stores_to_dead_spill_implicit_def_impdef
2323
tracksRegLiveness: true
2424
frameInfo:
25+
adjustsStack: true
2526
hasCalls: true
2627
body: |
2728
bb.0:
@@ -59,6 +60,7 @@ body: |
5960
name: inst_stores_to_dead_spill_movimm_impdef
6061
tracksRegLiveness: true
6162
frameInfo:
63+
adjustsStack: true
6264
hasCalls: true
6365
body: |
6466
bb.0:

llvm/test/CodeGen/AArch64/implicit-def-with-impdef-greedy-assert.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
---
55
name: widget
66
tracksRegLiveness: true
7+
frameInfo:
8+
adjustsStack: true
79
jumpTable:
810
kind: label-difference32
911
entries:

llvm/test/CodeGen/AMDGPU/fold-restore-undef-use.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
---
99
name: restore_undef_copy_use
1010
tracksRegLiveness: true
11+
frameInfo:
12+
adjustsStack: true
1113
machineFunctionInfo:
1214
maxKernArgAlign: 1
1315
isEntryFunction: true

llvm/test/CodeGen/AMDGPU/greedy-alloc-fail-sgpr1024-spill.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
name: greedy_fail_alloc_sgpr1024_spill
1414
tracksRegLiveness: true
1515
frameInfo:
16+
adjustsStack: true
1617
hasCalls: true
1718
machineFunctionInfo:
1819
explicitKernArgSize: 16

llvm/test/CodeGen/AMDGPU/ran-out-of-sgprs-allocation-failure.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ registers:
2424
- { id: 10, class: sreg_64_xexec, preferred-register: '$vcc' }
2525
frameInfo:
2626
maxAlignment: 1
27+
adjustsStack: true
2728
hasCalls: true
2829
machineFunctionInfo:
2930
maxKernArgAlign: 1

llvm/test/CodeGen/AMDGPU/sched-crash-dbg-value.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ legalized: false
181181
regBankSelected: false
182182
selected: false
183183
tracksRegLiveness: true
184+
frameInfo:
185+
adjustsStack: true
184186
liveins:
185187
- { reg: '$vgpr0', virtual-reg: '%0' }
186188
- { reg: '$vgpr1', virtual-reg: '%1' }

llvm/test/CodeGen/AMDGPU/sgpr-spill-wrong-stack-id.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
name: sgpr_spill_wrong_stack_id
7979
tracksRegLiveness: true
8080
frameInfo:
81+
adjustsStack: true
8182
hasCalls: true
8283
machineFunctionInfo:
8384
scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3

llvm/test/CodeGen/AMDGPU/snippet-copy-bundle-regression.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
name: kernel
2222
tracksRegLiveness: true
2323
frameInfo:
24+
adjustsStack: true
2425
hasCalls: true
2526
machineFunctionInfo:
2627
isEntryFunction: true

llvm/test/CodeGen/AMDGPU/virtregrewrite-undef-identity-copy.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ name: undef_identity_copy
2020
tracksRegLiveness: true
2121
frameInfo:
2222
maxAlignment: 4
23+
adjustsStack: true
2324
hasCalls: true
2425
machineFunctionInfo:
2526
isEntryFunction: true

llvm/test/CodeGen/ARM/no-register-coalescing-in-returnsTwice.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@
8686
---
8787
name: main
8888
exposesReturnsTwice: true
89+
frameInfo:
90+
adjustsStack: true
8991
stack:
9092
- { id: 0, name: P0, size: 80, alignment: 8, local-offset: -80 }
9193
- { id: 1, name: jb1, size: 160, alignment: 8, local-offset: -240 }

llvm/test/CodeGen/Hexagon/regalloc-bad-undef.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ frameInfo:
135135
stackSize: 0
136136
offsetAdjustment: 0
137137
maxAlignment: 0
138-
adjustsStack: false
138+
adjustsStack: true
139139
hasCalls: true
140140
maxCallFrameSize: 0
141141
hasOpaqueSPAdjustment: false

llvm/test/CodeGen/SystemZ/RAbasic-invalid-LR-update.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
name: autogen_SD21418
2626
alignment: 4
2727
tracksRegLiveness: true
28+
frameInfo:
29+
adjustsStack: true
2830
registers:
2931
- { id: 0, class: vr128bit }
3032
- { id: 1, class: vr128bit }

llvm/test/CodeGen/SystemZ/clear-liverange-spillreg.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ registers:
157157
- { id: 129, class: grx32bit }
158158
- { id: 130, class: fp64bit }
159159
frameInfo:
160+
adjustsStack: true
160161
hasCalls: true
161162
body: |
162163
bb.0:

llvm/test/CodeGen/SystemZ/int-cmp-56.mir

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ liveins:
4848
- { reg: '$r2d', virtual-reg: '%0' }
4949
frameInfo:
5050
maxAlignment: 1
51+
adjustsStack: true
5152
hasCalls: true
5253
machineFunctionInfo: {}
5354
body: |
@@ -125,6 +126,7 @@ liveins:
125126
- { reg: '$r2d', virtual-reg: '%0' }
126127
frameInfo:
127128
maxAlignment: 1
129+
adjustsStack: true
128130
hasCalls: true
129131
machineFunctionInfo: {}
130132
body: |
@@ -202,6 +204,7 @@ liveins:
202204
- { reg: '$r2d', virtual-reg: '%0' }
203205
frameInfo:
204206
maxAlignment: 1
207+
adjustsStack: true
205208
hasCalls: true
206209
machineFunctionInfo: {}
207210
body: |
@@ -279,6 +282,7 @@ liveins:
279282
- { reg: '$r2d', virtual-reg: '%0' }
280283
frameInfo:
281284
maxAlignment: 1
285+
adjustsStack: true
282286
hasCalls: true
283287
machineFunctionInfo: {}
284288
body: |

llvm/test/CodeGen/SystemZ/regcoal-subranges-update.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ body: |
4949
---
5050
name: segfault
5151
tracksRegLiveness: true
52+
frameInfo:
53+
adjustsStack: true
5254
liveins: []
5355
body: |
5456
; CHECK-LABEL: name: segfault

llvm/test/CodeGen/X86/callbr-asm-kill.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ liveins:
4545
- { reg: '$rsi', virtual-reg: '%3' }
4646
frameInfo:
4747
maxAlignment: 1
48+
adjustsStack: true
4849
hasCalls: true
4950
machineFunctionInfo: {}
5051
body: |

llvm/test/CodeGen/X86/late-remat-update.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ registers:
6666
liveins:
6767
- { reg: '$edi', virtual-reg: '%0' }
6868
frameInfo:
69+
adjustsStack: true
6970
hasCalls: true
7071
body: |
7172
bb.0.entry:

llvm/test/CodeGen/X86/limit-split-cost.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ registers:
8686
liveins:
8787
- { reg: '$edi', virtual-reg: '%0' }
8888
frameInfo:
89+
adjustsStack: true
8990
hasCalls: true
9091
body: |
9192
bb.0.entry:

llvm/test/CodeGen/X86/regalloc-copy-hints.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ registers:
103103
- { id: 82, class: gr32 }
104104
frameInfo:
105105
maxAlignment: 4
106+
adjustsStack: true
106107
hasCalls: true
107108
fixedStack:
108109
- { id: 0, size: 4, alignment: 4, stack-id: default, isImmutable: true }

llvm/test/CodeGen/X86/statepoint-fastregalloc.mir

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
---
77
name: test_relocate
88
tracksRegLiveness: true
9+
frameInfo:
10+
adjustsStack: true
911
body: |
1012
bb.0.entry:
1113
liveins: $rdi
@@ -25,6 +27,8 @@ body: |
2527
---
2628
name: test_relocate_multi_regmasks
2729
tracksRegLiveness: true
30+
frameInfo:
31+
adjustsStack: true
2832
body: |
2933
bb.0.entry:
3034
liveins: $rdi

llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ frameInfo:
231231
stackSize: 0
232232
offsetAdjustment: 0
233233
maxAlignment: 1
234-
adjustsStack: false
234+
adjustsStack: true
235235
hasCalls: true
236236
stackProtector: ''
237237
maxCallFrameSize: 4294967295

llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ frameInfo:
398398
stackSize: 0
399399
offsetAdjustment: 0
400400
maxAlignment: 1
401-
adjustsStack: false
401+
adjustsStack: true
402402
hasCalls: true
403403
stackProtector: ''
404404
maxCallFrameSize: 4294967295

llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ frameInfo:
175175
stackSize: 0
176176
offsetAdjustment: 0
177177
maxAlignment: 4
178-
adjustsStack: false
178+
adjustsStack: true
179179
hasCalls: true
180180
stackProtector: ''
181181
maxCallFrameSize: 4294967295

llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ frameInfo:
226226
stackSize: 0
227227
offsetAdjustment: 0
228228
maxAlignment: 4
229-
adjustsStack: false
229+
adjustsStack: true
230230
hasCalls: true
231231
stackProtector: ''
232232
maxCallFrameSize: 4294967295

llvm/test/CodeGen/X86/statepoint-invoke-ra.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ frameInfo:
172172
stackSize: 0
173173
offsetAdjustment: 0
174174
maxAlignment: 4
175-
adjustsStack: false
175+
adjustsStack: true
176176
hasCalls: true
177177
stackProtector: ''
178178
maxCallFrameSize: 4294967295

llvm/test/CodeGen/X86/statepoint-vreg-folding.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ frameInfo:
114114
stackSize: 0
115115
offsetAdjustment: 0
116116
maxAlignment: 8
117-
adjustsStack: false
117+
adjustsStack: true
118118
hasCalls: true
119119
stackProtector: ''
120120
maxCallFrameSize: 4294967295

llvm/test/DebugInfo/MIR/InstrRef/memory-operand-folding-tieddef.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ registers:
100100
- { id: 38, class: gr8 }
101101
frameInfo:
102102
maxAlignment: 1
103+
adjustsStack: true
103104
hasCalls: true
104105
machineFunctionInfo: {}
105106
body: |

llvm/test/DebugInfo/MIR/InstrRef/memory-operand-load-folding.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ liveins:
8787
- { reg: '$edi', virtual-reg: '%0' }
8888
- { reg: '$xmm0', virtual-reg: '%1' }
8989
frameInfo:
90+
adjustsStack: true
9091
hasCalls: true
9192
body: |
9293
bb.0.if.then:

llvm/test/DebugInfo/MIR/InstrRef/phi-coalesce-subreg.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ liveins:
9797
- { reg: '$esi', virtual-reg: '%4' }
9898
frameInfo:
9999
maxAlignment: 1
100+
adjustsStack: true
100101
hasCalls: true
101102
machineFunctionInfo: {}
102103
body: |

llvm/test/DebugInfo/MIR/InstrRef/phi-coalescing.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ liveins:
106106
- { reg: '$rsi', virtual-reg: '%5' }
107107
frameInfo:
108108
maxAlignment: 1
109+
adjustsStack: true
109110
hasCalls: true
110111
machineFunctionInfo: {}
111112
body: |

llvm/test/DebugInfo/MIR/InstrRef/phi-on-stack-coalesced.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ liveins:
7070
- { reg: '$esi', virtual-reg: '%2' }
7171
frameInfo:
7272
maxAlignment: 1
73+
adjustsStack: true
7374
hasCalls: true
7475
machineFunctionInfo: {}
7576
body: |

llvm/test/DebugInfo/MIR/InstrRef/phi-on-stack-coalesced2.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ liveins:
7171
- { reg: '$esi', virtual-reg: '%2' }
7272
frameInfo:
7373
maxAlignment: 1
74+
adjustsStack: true
7475
hasCalls: true
7576
machineFunctionInfo: {}
7677
body: |

llvm/test/DebugInfo/MIR/InstrRef/phi-regallocd-to-stack.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ liveins:
6565
- { reg: '$esi', virtual-reg: '%2' }
6666
frameInfo:
6767
maxAlignment: 1
68+
adjustsStack: true
6869
hasCalls: true
6970
machineFunctionInfo: {}
7071
body: |

llvm/test/DebugInfo/MIR/InstrRef/phi-through-regalloc.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ liveins:
9494
- { reg: '$esi', virtual-reg: '%2' }
9595
frameInfo:
9696
maxAlignment: 1
97+
adjustsStack: true
9798
hasCalls: true
9899
machineFunctionInfo: {}
99100
body: |

llvm/test/DebugInfo/MIR/InstrRef/stack-coloring-dbg-phi.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ liveins:
106106
- { reg: '$rdi', virtual-reg: '%15' }
107107
frameInfo:
108108
maxAlignment: 8
109+
adjustsStack: true
109110
hasCalls: true
110111
stack:
111112
- { id: 0, size: 8, alignment: 8 }

llvm/test/DebugInfo/MIR/InstrRef/survives-livedebugvars.mir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ liveins:
113113
- { reg: '$rdi', virtual-reg: '%2' }
114114
- { reg: '$esi', virtual-reg: '%4' }
115115
frameInfo:
116+
adjustsStack: true
116117
hasCalls: true
117118
machineFunctionInfo: {}
118119
body: |

llvm/test/DebugInfo/MIR/Mips/livedebugvars-stop-trimming-loc.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
name: fn2
7373
alignment: 4
7474
tracksRegLiveness: true
75+
frameInfo:
76+
adjustsStack: true
7577
registers:
7678
- { id: 0, class: gpr32, preferred-register: '' }
7779
- { id: 1, class: gpr32, preferred-register: '' }

llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ frameInfo:
116116
stackSize: 0
117117
offsetAdjustment: 0
118118
maxAlignment: 0
119-
adjustsStack: false
119+
adjustsStack: true
120120
hasCalls: true
121121
stackProtector: ''
122122
maxCallFrameSize: 4294967295

llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ frameInfo:
114114
stackSize: 0
115115
offsetAdjustment: 0
116116
maxAlignment: 0
117-
adjustsStack: false
117+
adjustsStack: true
118118
hasCalls: true
119119
stackProtector: ''
120120
maxCallFrameSize: 4294967295

0 commit comments

Comments
 (0)