[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