diff --git a/llvm/lib/CodeGen/MachineFunctionPass.cpp b/llvm/lib/CodeGen/MachineFunctionPass.cpp index 3a1e1720be9c6..d57a912f418b7 100644 --- a/llvm/lib/CodeGen/MachineFunctionPass.cpp +++ b/llvm/lib/CodeGen/MachineFunctionPass.cpp @@ -88,6 +88,8 @@ bool MachineFunctionPass::runOnFunction(Function &F) { MF.print(OS); } + MFProps.reset(ClearedProperties); + bool RV = runOnMachineFunction(MF); if (ShouldEmitSizeRemarks) { @@ -114,7 +116,6 @@ bool MachineFunctionPass::runOnFunction(Function &F) { } MFProps.set(SetProperties); - MFProps.reset(ClearedProperties); // For --print-changed, print if the serialized MF has changed. Modes other // than quiet/verbose are unimplemented and treated the same as 'quiet'. diff --git a/llvm/lib/CodeGen/RegisterCoalescer.cpp b/llvm/lib/CodeGen/RegisterCoalescer.cpp index 516095a699ea1..238462113bfe7 100644 --- a/llvm/lib/CodeGen/RegisterCoalescer.cpp +++ b/llvm/lib/CodeGen/RegisterCoalescer.cpp @@ -4131,14 +4131,6 @@ bool RegisterCoalescer::runOnMachineFunction(MachineFunction &fn) { else JoinGlobalCopies = (EnableGlobalCopies == cl::BOU_TRUE); - // FIXME: MachineFunctionProperties cannot express the required pre-property - // no-SSA. When running a MIR testcase without any virtual register defs, the - // MIR parser assumes SSA. MachineFunctionPass::getClearedProperties is called - // after the pass is run, so the properties at this point say it's an SSA - // function. Forcibly clear it here so -verify-coalescing doesn't complain - // after multiple virtual register defs are introduced. - MRI->leaveSSA(); - // If there are PHIs tracked by debug-info, they will need updating during // coalescing. Build an index of those PHIs to ease updating. SlotIndexes *Slots = LIS->getSlotIndexes();