[llvm-branch-commits] [llvm] [CodeGen][NewPM] Port SpillPlacement analysis to NPM (PR #116618)
Matt Arsenault via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Nov 18 08:32:39 PST 2024
================
@@ -189,32 +189,57 @@ struct SpillPlacement::Node {
}
};
-bool SpillPlacement::runOnMachineFunction(MachineFunction &mf) {
+bool SpillPlacementWrapperLegacy::runOnMachineFunction(MachineFunction &MF) {
+ auto *Bundles = &getAnalysis<EdgeBundlesWrapperLegacy>().getEdgeBundles();
+ auto *MBFI = &getAnalysis<MachineBlockFrequencyInfoWrapperPass>().getMBFI();
+
+ Impl.reset(new SpillPlacement(Bundles, MBFI));
+ Impl->run(MF);
+ return false;
+}
+
+AnalysisKey SpillPlacementAnalysis::Key;
+
+SpillPlacement
+SpillPlacementAnalysis::run(MachineFunction &MF,
+ MachineFunctionAnalysisManager &MFAM) {
+ auto *Bundles = &MFAM.getResult<EdgeBundlesAnalysis>(MF);
+ auto *MBFI = &MFAM.getResult<MachineBlockFrequencyAnalysis>(MF);
+ SpillPlacement Impl(Bundles, MBFI);
+ Impl.run(MF);
+ return Impl;
+}
+
+bool SpillPlacementAnalysis::Result::invalidate(
+ MachineFunction &MF, const PreservedAnalyses &PA,
+ MachineFunctionAnalysisManager::Invalidator &Inv) {
+ auto PAC = PA.getChecker<SpillPlacementAnalysis>();
+ return !(PAC.preserved() ||
----------------
arsenm wrote:
demorgan condition
https://github.com/llvm/llvm-project/pull/116618
More information about the llvm-branch-commits
mailing list