Skip to content

Commit debfb96

Browse files
committed
llvm-reduce: Fix cloning unset maxCallFrameSize
This was promoting an unset max call frame size to a max call frame size of 0.
1 parent 6fa1d12 commit debfb96

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# REQUIRES: amdgpu-registered-target
2+
# RUN: llvm-reduce -simplify-mir -mtriple=amdgcn-amd-amdhsa --delta-passes=instructions --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2> %t.log
3+
# RUN: FileCheck --match-full-lines --check-prefix=RESULT %s < %t
4+
5+
# CHECK-INTERESTINGNESS: S_ENDPGM
6+
7+
# Make sure we preserve the default value of unset maxCallFrameSize,
8+
# and don't treat it as computed to 0.
9+
10+
# RESULT: frameInfo:
11+
# RESULT-NOT: maxCallFrameSize
12+
---
13+
name: func
14+
tracksRegLiveness: true
15+
frameInfo:
16+
maxCallFrameSize: 4294967295
17+
body: |
18+
bb.0:
19+
S_NOP 0
20+
S_ENDPGM 0
21+
...

llvm/tools/llvm-reduce/ReducerWorkItem.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ static void cloneFrameInfo(
4949
DstMFI.setHasVAStart(SrcMFI.hasVAStart());
5050
DstMFI.setHasMustTailInVarArgFunc(SrcMFI.hasMustTailInVarArgFunc());
5151
DstMFI.setHasTailCall(SrcMFI.hasTailCall());
52-
DstMFI.setMaxCallFrameSize(SrcMFI.getMaxCallFrameSize());
52+
53+
if (SrcMFI.isMaxCallFrameSizeComputed())
54+
DstMFI.setMaxCallFrameSize(SrcMFI.getMaxCallFrameSize());
5355

5456
DstMFI.setCVBytesOfCalleeSavedRegisters(
5557
SrcMFI.getCVBytesOfCalleeSavedRegisters());

0 commit comments

Comments
 (0)