[llvm] [AArch64][SME] Refactor MachineSMEABI pass state (NFCI) (PR #156674)

Gaëtan Bossu via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 11 05:17:30 PDT 2025


================
@@ -807,32 +838,33 @@ bool MachineSMEABI::runOnMachineFunction(MachineFunction &MF) {
 
   assert(MF.getRegInfo().isSSA() && "Expected to be run on SSA form!");
 
-  // Reset pass state.
-  State = PassState{};
   this->MF = &MF;
-  Bundles = &getAnalysis<EdgeBundlesWrapperLegacy>().getEdgeBundles();
   Subtarget = &MF.getSubtarget<AArch64Subtarget>();
   TII = Subtarget->getInstrInfo();
   TRI = Subtarget->getRegisterInfo();
   MRI = &MF.getRegInfo();
 
-  collectNeededZAStates(SMEFnAttrs);
-  assignBundleZAStates();
-  insertStateChanges();
+  EdgeBundles const &Bundles =
+      getAnalysis<EdgeBundlesWrapperLegacy>().getEdgeBundles();
+
+  FunctionInfo FnInfo = collectNeededZAStates(SMEFnAttrs);
+  SmallVector<ZAState> BundleStates = assignBundleZAStates(Bundles, FnInfo);
+
+  EmitContext Context;
+  insertStateChanges(Context, FnInfo, Bundles, BundleStates);
----------------
gbossu wrote:

`runOnMachineFunction` is now much easier to understand in terms of dataflow, Thanks 🤩 

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


More information about the llvm-commits mailing list