diff --git a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp index eb9aabf8b6317..c385e343b55b8 100644 --- a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp +++ b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp @@ -2397,6 +2397,8 @@ bool SIFoldOperandsImpl::run(MachineFunction &MF) { PreservedAnalyses SIFoldOperandsPass::run(MachineFunction &MF, MachineFunctionAnalysisManager &) { + MFPropsModifier _(*this, MF); + bool Changed = SIFoldOperandsImpl().run(MF); if (!Changed) { return PreservedAnalyses::all(); diff --git a/llvm/test/CodeGen/AMDGPU/si-fold-operands-requires-ssa.mir b/llvm/test/CodeGen/AMDGPU/si-fold-operands-requires-ssa.mir new file mode 100644 index 0000000000000..ef96c1d5f1bb6 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/si-fold-operands-requires-ssa.mir @@ -0,0 +1,16 @@ +# RUN: not --crash llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=si-fold-operands -filetype=null %s 2>&1 | FileCheck -check-prefixes=ERR-LEGACY,ERR %s +# RUN: not --crash llc -mtriple=amdgcn -mcpu=gfx900 -passes=si-fold-operands -filetype=null %s 2>&1 | FileCheck -check-prefixes=ERR-NPM,ERR %s + +# ERR-LEGACY: MachineFunctionProperties required by SI Fold Operands pass are not met by function not_ssa. +# ERR-NPM: MachineFunctionProperties required by SIFoldOperandsPass pass are not met by function not_ssa. +# ERR-NEXT: Required properties: IsSSA +# ERR-NEXT: Current properties: NoPHIs +--- +name: not_ssa +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + %0:vgpr_32 = COPY $vgpr0 + %0:vgpr_32 = COPY $vgpr1 + +...