@@ -176,7 +176,8 @@ getZAStateBeforeInst(const TargetRegisterInfo &TRI, MachineInstr &MI,
176176struct MachineSMEABI : public MachineFunctionPass {
177177 inline static char ID = 0 ;
178178
179- MachineSMEABI () : MachineFunctionPass(ID) {}
179+ MachineSMEABI (CodeGenOptLevel OptLevel = CodeGenOptLevel::Default)
180+ : MachineFunctionPass(ID), OptLevel(OptLevel) {}
180181
181182 bool runOnMachineFunction (MachineFunction &MF) override ;
182183
@@ -282,6 +283,8 @@ struct MachineSMEABI : public MachineFunctionPass {
282283 LiveRegs PhysLiveRegsAtExit = LiveRegs::None;
283284 };
284285
286+ CodeGenOptLevel OptLevel = CodeGenOptLevel::Default;
287+
285288 // All pass state that must be cleared between functions.
286289 struct PassState {
287290 SmallVector<BlockInfo> Blocks;
@@ -299,6 +302,7 @@ struct MachineSMEABI : public MachineFunctionPass {
299302 const AArch64FunctionInfo *AFI = nullptr ;
300303 const TargetInstrInfo *TII = nullptr ;
301304 MachineRegisterInfo *MRI = nullptr ;
305+ MachineLoopInfo *MLI = nullptr ;
302306};
303307
304308void MachineSMEABI::collectNeededZAStates (SMEAttrs SMEFnAttrs) {
@@ -839,4 +843,6 @@ bool MachineSMEABI::runOnMachineFunction(MachineFunction &MF) {
839843 return true ;
840844}
841845
842- FunctionPass *llvm::createMachineSMEABIPass () { return new MachineSMEABI (); }
846+ FunctionPass *llvm::createMachineSMEABIPass (CodeGenOptLevel OptLevel) {
847+ return new MachineSMEABI (OptLevel);
848+ }
0 commit comments