Lines Matching defs:MBB

39 void LoongArchInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
44 BuildMI(MBB, MBBI, DL, get(LoongArch::OR), DstReg)
52 BuildMI(MBB, MBBI, DL, get(LoongArch::VORI_B), DstReg)
60 BuildMI(MBB, MBBI, DL, get(LoongArch::XVORI_B), DstReg)
69 BuildMI(MBB, MBBI, DL, get(LoongArch::MOVGR2CF), DstReg)
76 BuildMI(MBB, MBBI, DL, get(LoongArch::MOVCF2GR), DstReg)
82 BuildMI(MBB, MBBI, DL, get(LoongArch::PseudoCopyCFR), DstReg)
106 BuildMI(MBB, MBBI, DL, get(Opc), DstReg)
111 MachineBasicBlock &MBB, MachineBasicBlock::iterator I, Register SrcReg,
114 MachineFunction *MF = MBB.getParent();
139 BuildMI(MBB, I, DebugLoc(), get(Opcode))
146 void LoongArchInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
152 MachineFunction *MF = MBB.getParent();
177 BuildMI(MBB, I, DebugLoc(), get(Opcode), DstReg)
183 void LoongArchInstrInfo::movImm(MachineBasicBlock &MBB,
198 BuildMI(MBB, MBBI, DL, get(Inst.Opc), DstReg)
206 BuildMI(MBB, MBBI, DL, get(Inst.Opc), DstReg)
267 bool LoongArchInstrInfo::analyzeBranch(MachineBasicBlock &MBB,
276 MachineBasicBlock::iterator I = MBB.getLastNonDebugInstr();
277 if (I == MBB.end() || !isUnpredicatedTerminator(*I))
282 MachineBasicBlock::iterator FirstUncondOrIndirectBr = MBB.end();
284 for (auto J = I.getReverse(); J != MBB.rend() && isUnpredicatedTerminator(*J);
295 if (AllowModify && FirstUncondOrIndirectBr != MBB.end()) {
296 while (std::next(FirstUncondOrIndirectBr) != MBB.end()) {
350 unsigned LoongArchInstrInfo::removeBranch(MachineBasicBlock &MBB,
354 MachineBasicBlock::iterator I = MBB.getLastNonDebugInstr();
355 if (I == MBB.end())
366 I = MBB.end();
368 if (I == MBB.begin())
384 MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB,
396 MachineInstr &MI = *BuildMI(&MBB, DL, get(LoongArch::PseudoBR)).addMBB(TBB);
403 MachineInstrBuilder MIB = BuildMI(&MBB, DL, get(Cond[0].getImm()));
415 MachineInstr &MI = *BuildMI(&MBB, DL, get(LoongArch::PseudoBR)).addMBB(FBB);
421 void LoongArchInstrInfo::insertIndirectBranch(MachineBasicBlock &MBB,
428 assert(MBB.empty() &&
430 assert(MBB.pred_size() == 1);
432 MachineFunction *MF = MBB.getParent();
443 auto II = MBB.end();
446 *BuildMI(MBB, II, DL, get(LoongArch::PCALAU12I), ScratchReg)
449 *BuildMI(MBB, II, DL,
454 BuildMI(MBB, II, DL, get(LoongArch::PseudoBRIND))
458 RS->enterBasicBlockEnd(MBB);
471 storeRegToStackSlot(MBB, PCALAU12I, Scav, /*IsKill=*/true, FrameIndex,