Lines Matching refs:MBB

137 static unsigned findDeadCallerSavedReg(MachineBasicBlock &MBB,  in findDeadCallerSavedReg()  argument
140 const MachineFunction *MF = MBB.getParent(); in findDeadCallerSavedReg()
146 if (MBBI == MBB.end()) in findDeadCallerSavedReg()
176 static bool isRegLiveIn(MachineBasicBlock &MBB, unsigned Reg) { in isRegLiveIn() argument
177 return llvm::any_of(MBB.liveins(), in isRegLiveIn()
197 void M68kFrameLowering::BuildStackAlignAND(MachineBasicBlock &MBB, in BuildStackAlignAND() argument
210 BuildMI(MBB, MBBI, DL, TII.get(MovOp), Tmp) in BuildStackAlignAND()
214 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AndOp), Tmp) in BuildStackAlignAND()
222 BuildMI(MBB, MBBI, DL, TII.get(MovOp), Reg) in BuildStackAlignAND()
228 MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
236 I = MBB.erase(I); in eliminateCallFramePseudoInstr()
264 BuildCFI(MBB, I, DL, in eliminateCallFramePseudoInstr()
279 BuildCFI(MBB, I, DL, in eliminateCallFramePseudoInstr()
290 StackAdjustment += mergeSPUpdates(MBB, I, true); in eliminateCallFramePseudoInstr()
291 StackAdjustment += mergeSPUpdates(MBB, I, false); in eliminateCallFramePseudoInstr()
294 BuildStackAdjustment(MBB, I, DL, StackAdjustment, false); in eliminateCallFramePseudoInstr()
310 MBB, I, DL, in eliminateCallFramePseudoInstr()
326 MachineBasicBlock::iterator B = MBB.begin(); in eliminateCallFramePseudoInstr()
329 BuildStackAdjustment(MBB, CI, DL, -InternalAmt, /*InEpilogue=*/false); in eliminateCallFramePseudoInstr()
337 void M68kFrameLowering::emitSPUpdate(MachineBasicBlock &MBB, in emitSPUpdate() argument
344 DebugLoc DL = MBB.findDebugLoc(MBBI); in emitSPUpdate()
352 if (IsSub && !isRegLiveIn(MBB, M68k::D0)) in emitSPUpdate()
355 Reg = findDeadCallerSavedReg(MBB, MBBI, TRI); in emitSPUpdate()
359 BuildMI(MBB, MBBI, DL, TII.get(Opc), Reg).addImm(Offset); in emitSPUpdate()
361 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr) in emitSPUpdate()
374 MBB, MBBI, DL, IsSub ? -ThisVal : ThisVal, InEpilogue); in emitSPUpdate()
384 int M68kFrameLowering::mergeSPUpdates(MachineBasicBlock &MBB, in mergeSPUpdates() argument
387 if ((MergeWithPrevious && MBBI == MBB.begin()) || in mergeSPUpdates()
388 (!MergeWithPrevious && MBBI == MBB.end())) in mergeSPUpdates()
397 if (!MergeWithPrevious && NI != MBB.end() && in mergeSPUpdates()
406 MBB.erase(PI); in mergeSPUpdates()
412 MBB.erase(PI); in mergeSPUpdates()
421 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in BuildStackAdjustment() argument
431 MachineInstrBuilder MI = BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr) in BuildStackAdjustment()
440 void M68kFrameLowering::BuildCFI(MachineBasicBlock &MBB, in BuildCFI() argument
444 MachineFunction &MF = *MBB.getParent(); in BuildCFI()
446 BuildMI(MBB, MBBI, DL, TII.get(TargetOpcode::CFI_INSTRUCTION)) in BuildCFI()
451 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in emitCalleeSavedFrameMoves() argument
453 MachineFunction &MF = *MBB.getParent(); in emitCalleeSavedFrameMoves()
469 BuildCFI(MBB, MBBI, DL, in emitCalleeSavedFrameMoves()
475 MachineBasicBlock &MBB) const { in emitPrologue()
479 MachineBasicBlock::iterator MBBI = MBB.begin(); in emitPrologue()
508 BuildStackAdjustment(MBB, MBBI, DL, TailCallReturnAddrDelta, in emitPrologue()
550 BuildMI(MBB, MBBI, DL, TII.get(M68k::PUSH32r)) in emitPrologue()
558 BuildCFI(MBB, MBBI, DL, in emitPrologue()
564 BuildCFI(MBB, MBBI, DL, in emitPrologue()
570 BuildMI(MBB, MBBI, DL, TII.get(M68k::MOV32aa), FramePtr) in emitPrologue()
578 BuildCFI(MBB, MBBI, DL, in emitPrologue()
594 while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup) && in emitPrologue()
603 BuildCFI(MBB, MBBI, DL, in emitPrologue()
613 BuildStackAlignAND(MBB, MBBI, DL, StackPtr, MaxAlign); in emitPrologue()
619 NumBytes -= mergeSPUpdates(MBB, MBBI, true); in emitPrologue()
622 emitSPUpdate(MBB, MBBI, -(int64_t)NumBytes, /*InEpilogue=*/false); in emitPrologue()
632 BuildMI(MBB, MBBI, DL, TII.get(M68k::MOV32aa), BasePtr) in emitPrologue()
639 M68k::addRegIndirectWithDisp(BuildMI(MBB, MBBI, DL, TII.get(Opm)), in emitPrologue()
653 MBB, MBBI, DL, in emitPrologue()
659 emitCalleeSavedFrameMoves(MBB, MBBI, DL, true); in emitPrologue()
676 MachineBasicBlock &MBB) const { in emitEpilogue()
679 MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator(); in emitEpilogue()
681 if (MBBI != MBB.end()) in emitEpilogue()
684 if (MBBI != MBB.end()) in emitEpilogue()
706 BuildMI(MBB, MBBI, DL, TII.get(M68k::POP32r), MachineFramePtr) in emitEpilogue()
713 while (MBBI != MBB.begin()) { in emitEpilogue()
725 if (MBBI != MBB.end()) in emitEpilogue()
731 NumBytes += mergeSPUpdates(MBB, MBBI, true); in emitEpilogue()
748 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr), FramePtr, false, in emitEpilogue()
753 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr).addReg(FramePtr); in emitEpilogue()
758 emitSPUpdate(MBB, MBBI, NumBytes, /*InEpilogue=*/true); in emitEpilogue()
767 MBBI = MBB.getFirstTerminator(); in emitEpilogue()
770 Offset += mergeSPUpdates(MBB, MBBI, true); in emitEpilogue()
771 emitSPUpdate(MBB, MBBI, Offset, /*InEpilogue=*/true); in emitEpilogue()
836 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in spillCalleeSavedRegisters() argument
839 auto DL = MBB.findDebugLoc(MI); in spillCalleeSavedRegisters()
851 M68k::addFrameReference(BuildMI(MBB, MI, DL, TII.get(M68k::MOVM32pm)), FI) in spillCalleeSavedRegisters()
856 const MachineFunction &MF = *MBB.getParent(); in spillCalleeSavedRegisters()
862 MBB.addLiveIn(Reg); in spillCalleeSavedRegisters()
871 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in restoreCalleeSavedRegisters() argument
874 auto DL = MBB.findDebugLoc(MI); in restoreCalleeSavedRegisters()
886 BuildMI(MBB, MI, DL, TII.get(M68k::MOVM32mp)).addImm(Mask), FI) in restoreCalleeSavedRegisters()