[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