Lines Matching refs:MBB
57 bool runOnMBB(MachineBasicBlock &MBB);
58 bool runOnMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
64 bool lowerProlog(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
69 bool lowerEpilog(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
190 MachineBasicBlock *MBB = MF.CreateMachineBasicBlock(); in createFrameHelperMachineFunction() local
191 MF.insert(MF.begin(), MBB); in createFrameHelperMachineFunction()
197 static void emitStore(MachineFunction &MF, MachineBasicBlock &MBB, in emitStore() argument
209 MachineInstrBuilder MIB = BuildMI(MBB, Pos, DebugLoc(), TII.get(Opc)); in emitStore()
220 static void emitLoad(MachineFunction &MF, MachineBasicBlock &MBB, in emitLoad() argument
232 MachineInstrBuilder MIB = BuildMI(MBB, Pos, DebugLoc(), TII.get(Opc)); in emitLoad()
283 MachineBasicBlock &MBB = *MF.begin(); in getOrCreateFrameHelper() local
299 emitStore(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], in getOrCreateFrameHelper()
308 emitStore(MF, MBB, MBB.end(), TII, Regs[I - 1], Regs[I], Size - I - 1, in getOrCreateFrameHelper()
312 BuildMI(MBB, MBB.end(), DebugLoc(), TII.get(AArch64::ADDXri)) in getOrCreateFrameHelper()
319 BuildMI(MBB, MBB.end(), DebugLoc(), TII.get(AArch64::RET)) in getOrCreateFrameHelper()
327 BuildMI(MBB, MBB.end(), DebugLoc(), TII.get(AArch64::ORRXrs)) in getOrCreateFrameHelper()
334 emitLoad(MF, MBB, MBB.end(), TII, Regs[I], Regs[I + 1], Size - I - 2, in getOrCreateFrameHelper()
337 emitLoad(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], Size, in getOrCreateFrameHelper()
340 BuildMI(MBB, MBB.end(), DebugLoc(), TII.get(AArch64::RET)) in getOrCreateFrameHelper()
355 static bool shouldUseFrameHelper(MachineBasicBlock &MBB, in shouldUseFrameHelper() argument
359 const auto *TRI = MBB.getParent()->getSubtarget().getRegisterInfo(); in shouldUseFrameHelper()
381 for (auto NextMI = NextMBBI; NextMI != MBB.end(); NextMI++) { in shouldUseFrameHelper()
386 for (const MachineBasicBlock *SuccMBB : MBB.successors()) { in shouldUseFrameHelper()
394 if (NextMBBI == MBB.end()) in shouldUseFrameHelper()
429 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in lowerEpilog() argument
431 auto &MF = *MBB.getParent(); in lowerEpilog()
447 if (shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::EpilogTail)) { in lowerEpilog()
451 BuildMI(MBB, MBBI, DL, TII->get(AArch64::TCRETURNdi)) in lowerEpilog()
459 } else if (shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerEpilog()
464 BuildMI(MBB, MBBI, DL, TII->get(AArch64::BL)) in lowerEpilog()
471 emitLoad(MF, MBB, MBBI, *TII, Regs[I], Regs[I + 1], Size - I - 2, false); in lowerEpilog()
473 emitLoad(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], Size, true); in lowerEpilog()
503 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in lowerProlog() argument
505 auto &MF = *MBB.getParent(); in lowerProlog()
529 shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::PrologFrame)) { in lowerProlog()
531 emitStore(MF, MBB, MBBI, *TII, AArch64::LR, AArch64::FP, -LRIdx - 2, true); in lowerProlog()
534 BuildMI(MBB, MBBI, DL, TII->get(AArch64::BL)) in lowerProlog()
540 } else if (!FpOffset && shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerProlog()
543 emitStore(MF, MBB, MBBI, *TII, AArch64::LR, AArch64::FP, -LRIdx - 2, true); in lowerProlog()
546 BuildMI(MBB, MBBI, DL, TII->get(AArch64::BL)) in lowerProlog()
552 emitStore(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], -Size, true); in lowerProlog()
554 emitStore(MF, MBB, MBBI, *TII, Regs[I - 1], Regs[I], Size - I - 1, false); in lowerProlog()
556 BuildMI(MBB, MBBI, DL, TII->get(AArch64::ADDXri)) in lowerProlog()
574 bool AArch64LowerHomogeneousPE::runOnMI(MachineBasicBlock &MBB, in runOnMI() argument
583 return lowerProlog(MBB, MBBI, NextMBBI); in runOnMI()
585 return lowerEpilog(MBB, MBBI, NextMBBI); in runOnMI()
590 bool AArch64LowerHomogeneousPE::runOnMBB(MachineBasicBlock &MBB) { in runOnMBB() argument
593 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end(); in runOnMBB()
596 Modified |= runOnMI(MBB, MBBI, NMBBI); in runOnMBB()
607 for (auto &MBB : MF) in runOnMachineFunction() local
608 Modified |= runOnMBB(MBB); in runOnMachineFunction()