Lines Matching defs:MBB
40 void LoongArchInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
47 BuildMI(MBB, MBBI, DL, get(LoongArch::OR), DstReg)
55 BuildMI(MBB, MBBI, DL, get(LoongArch::VORI_B), DstReg)
63 BuildMI(MBB, MBBI, DL, get(LoongArch::XVORI_B), DstReg)
72 BuildMI(MBB, MBBI, DL, get(LoongArch::MOVGR2CF), DstReg)
79 BuildMI(MBB, MBBI, DL, get(LoongArch::MOVCF2GR), DstReg)
85 BuildMI(MBB, MBBI, DL, get(LoongArch::PseudoCopyCFR), DstReg)
109 BuildMI(MBB, MBBI, DL, get(Opc), DstReg)
114 MachineBasicBlock &MBB, MachineBasicBlock::iterator I, Register SrcReg,
118 MachineFunction *MF = MBB.getParent();
143 BuildMI(MBB, I, DebugLoc(), get(Opcode))
151 MachineBasicBlock &MBB, MachineBasicBlock::iterator I, Register DstReg,
154 MachineFunction *MF = MBB.getParent();
157 if (I != MBB.end())
182 BuildMI(MBB, I, DL, get(Opcode), DstReg)
188 void LoongArchInstrInfo::movImm(MachineBasicBlock &MBB,
203 BuildMI(MBB, MBBI, DL, get(Inst.Opc), DstReg)
211 BuildMI(MBB, MBBI, DL, get(Inst.Opc), DstReg)
217 BuildMI(MBB, MBBI, DL, get(Inst.Opc), DstReg)
298 bool LoongArchInstrInfo::analyzeBranch(MachineBasicBlock &MBB,
307 MachineBasicBlock::iterator I = MBB.getLastNonDebugInstr();
308 if (I == MBB.end() || !isUnpredicatedTerminator(*I))
313 MachineBasicBlock::iterator FirstUncondOrIndirectBr = MBB.end();
315 for (auto J = I.getReverse(); J != MBB.rend() && isUnpredicatedTerminator(*J);
326 if (AllowModify && FirstUncondOrIndirectBr != MBB.end()) {
327 while (std::next(FirstUncondOrIndirectBr) != MBB.end()) {
382 const MachineBasicBlock *MBB,
384 if (TargetInstrInfo::isSchedulingBoundary(MI, MBB, MF))
388 auto MIE = MBB->end();
537 unsigned LoongArchInstrInfo::removeBranch(MachineBasicBlock &MBB,
541 MachineBasicBlock::iterator I = MBB.getLastNonDebugInstr();
542 if (I == MBB.end())
553 I = MBB.end();
555 if (I == MBB.begin())
571 MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB,
583 MachineInstr &MI = *BuildMI(&MBB, DL, get(LoongArch::PseudoBR)).addMBB(TBB);
590 MachineInstrBuilder MIB = BuildMI(&MBB, DL, get(Cond[0].getImm()));
602 MachineInstr &MI = *BuildMI(&MBB, DL, get(LoongArch::PseudoBR)).addMBB(FBB);
608 void LoongArchInstrInfo::insertIndirectBranch(MachineBasicBlock &MBB,
615 assert(MBB.empty() &&
617 assert(MBB.pred_size() == 1);
619 MachineFunction *MF = MBB.getParent();
630 auto II = MBB.end();
633 *BuildMI(MBB, II, DL, get(LoongArch::PCALAU12I), ScratchReg)
636 *BuildMI(MBB, II, DL,
641 BuildMI(MBB, II, DL, get(LoongArch::PseudoBRIND))
645 RS->enterBasicBlockEnd(MBB);
658 storeRegToStackSlot(MBB, PCALAU12I, Scav, /*IsKill=*/true, FrameIndex,