[llvm] [CodeGen] Port break-false-deps to new pass manager (PR #194262)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 1 00:50:51 PDT 2026


================
@@ -274,28 +286,47 @@ void BreakFalseDeps::processBasicBlock(MachineBasicBlock *MBB) {
   processUndefReads(MBB);
 }
 
-bool BreakFalseDeps::runOnMachineFunction(MachineFunction &mf) {
-  if (skipFunction(mf.getFunction()))
-    return false;
-  MF = &mf;
+bool BreakFalseDeps::run(MachineFunction &CurMF) {
+  MF = &CurMF;
   TII = MF->getSubtarget().getInstrInfo();
   TRI = MF->getSubtarget().getRegisterInfo();
-  RDI = &getAnalysis<ReachingDefInfoWrapperPass>().getRDI();
 
-  RegClassInfo.runOnMachineFunction(mf, /*Rev=*/true);
+  RegClassInfo.runOnMachineFunction(CurMF, /*Rev=*/true);
 
   LLVM_DEBUG(dbgs() << "********** BREAK FALSE DEPENDENCIES **********\n");
 
   // Skip Dead blocks due to ReachingDefAnalysis has no idea about instructions
   // in them.
   df_iterator_default_set<MachineBasicBlock *> Reachable;
-  for (MachineBasicBlock *MBB : depth_first_ext(&mf, Reachable))
+  for (MachineBasicBlock *MBB : depth_first_ext(&CurMF, Reachable))
     (void)MBB /* Mark all reachable blocks */;
 
   // Traverse the basic blocks.
-  for (MachineBasicBlock &MBB : mf)
+  for (MachineBasicBlock &MBB : CurMF)
     if (Reachable.count(&MBB))
       processBasicBlock(&MBB);
 
   return false;
 }
+
+bool BreakFalseDepsLegacy::runOnMachineFunction(MachineFunction &MF) {
+  if (skipFunction(MF.getFunction()))
+    return false;
+
+  ReachingDefInfo *RDI = &getAnalysis<ReachingDefInfoWrapperPass>().getRDI();
+  BreakFalseDeps Impl(RDI);
+  return Impl.run(MF);
+}
+
+PreservedAnalyses
+BreakFalseDepsPass::run(MachineFunction &MF,
+                        MachineFunctionAnalysisManager &MFAM) {
+  MFPropsModifier _(*this, MF);
+  ReachingDefInfo *RDI = &MFAM.getResult<ReachingDefAnalysis>(MF);
+  BreakFalseDeps(RDI).run(MF);
+  // TODO: breakPartialRegDependency() may insert instructions, propagate when
+  // the pass made a change and return PreservedAnalyses::all() otherwise.
+  auto PA = getMachineFunctionPassPreservedAnalyses();
----------------
juanvazquez wrote:

Thanks, I've changed to use the explicit type.

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


More information about the llvm-commits mailing list