[llvm] [NewPM] Port MachineCombiner to the new pass manager (PR #217279)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 06:11:53 PDT 2026


================
@@ -726,3 +742,38 @@ bool MachineCombiner::runOnMachineFunction(MachineFunction &MF) {
 
   return Changed;
 }
+
+bool MachineCombinerLegacy::runOnMachineFunction(MachineFunction &MF) {
+  auto *MLI = &getAnalysis<MachineLoopInfoWrapperPass>().getLI();
+  auto *Traces = &getAnalysis<MachineTraceMetricsWrapperPass>().getMTM();
+  auto *PSI = &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+  auto *MBFI = (PSI && PSI->hasProfileSummary())
+                   ? &getAnalysis<LazyMachineBlockFrequencyInfoPass>().getBFI()
+                   : nullptr;
+  auto &RegClassInfo =
+      getAnalysis<MachineRegisterClassInfoWrapperPass>().getRCI();
+  return MachineCombinerImpl().run(MF, MLI, Traces, PSI, MBFI, &RegClassInfo);
+}
+
+PreservedAnalyses
+MachineCombinerPass::run(MachineFunction &MF,
+                         MachineFunctionAnalysisManager &MFAM) {
+  MFPropsModifier _(*this, MF);
+  auto &MLI = MFAM.getResult<MachineLoopAnalysis>(MF);
+  auto &Traces = MFAM.getResult<MachineTraceMetricsAnalysis>(MF);
+  auto *PSI = MFAM.getResult<ModuleAnalysisManagerMachineFunctionProxy>(MF)
+                  .getCachedResult<ProfileSummaryAnalysis>(
+                      *MF.getFunction().getParent());
+  auto *MBFI = (PSI && PSI->hasProfileSummary())
+                   ? &MFAM.getResult<MachineBlockFrequencyAnalysis>(MF)
+                   : nullptr;
+  auto &RegClassInfo = MFAM.getResult<MachineRegisterClassAnalysis>(MF);
+  if (!MachineCombinerImpl().run(MF, &MLI, &Traces, PSI, MBFI, &RegClassInfo))
+    return PreservedAnalyses::all();
+
+  auto PA = getMachineFunctionPassPreservedAnalyses();
+  PA.preserveSet<CFGAnalyses>();
+  PA.preserve<MachineLoopAnalysis>();
----------------
boomanaiden154 wrote:

This should be implied by CFGAnalyses.

https://github.com/llvm/llvm-project/pull/217279


More information about the llvm-commits mailing list