Lines Matching defs:MBB
44 bool expandMBB(MachineBasicBlock &MBB);
45 bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
47 bool expandCCOp(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
49 bool expandVMSET_VMCLR(MachineBasicBlock &MBB,
51 bool expandMV_FPR16INX(MachineBasicBlock &MBB,
53 bool expandMV_FPR32INX(MachineBasicBlock &MBB,
55 bool expandRV32ZdinxStore(MachineBasicBlock &MBB,
57 bool expandRV32ZdinxLoad(MachineBasicBlock &MBB,
62 for (auto &MBB : MF)
63 for (auto &MI : MBB)
81 for (auto &MBB : MF)
82 Modified |= expandMBB(MBB);
91 bool RISCVExpandPseudo::expandMBB(MachineBasicBlock &MBB) {
94 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
97 Modified |= expandMI(MBB, MBBI, NMBBI);
104 bool RISCVExpandPseudo::expandMI(MachineBasicBlock &MBB,
112 return expandMV_FPR16INX(MBB, MBBI);
114 return expandMV_FPR32INX(MBB, MBBI);
116 return expandRV32ZdinxStore(MBB, MBBI);
118 return expandRV32ZdinxLoad(MBB, MBBI);
148 return expandCCOp(MBB, MBBI, NextMBBI);
157 return expandVMSET_VMCLR(MBB, MBBI, RISCV::VMXOR_MM);
166 return expandVMSET_VMCLR(MBB, MBBI, RISCV::VMXNOR_MM);
172 bool RISCVExpandPseudo::expandCCOp(MachineBasicBlock &MBB,
176 MachineFunction *MF = MBB.getParent();
180 MachineBasicBlock *TrueBB = MF->CreateMachineBasicBlock(MBB.getBasicBlock());
181 MachineBasicBlock *MergeBB = MF->CreateMachineBasicBlock(MBB.getBasicBlock());
183 MF->insert(++MBB.getIterator(), TrueBB);
193 BuildMI(MBB, MBBI, DL, TII->getBrCond(CC))
247 MergeBB->splice(MergeBB->end(), &MBB, MI, MBB.end());
248 MergeBB->transferSuccessors(&MBB);
250 MBB.addSuccessor(TrueBB);
251 MBB.addSuccessor(MergeBB);
253 NextMBBI = MBB.end();
264 bool RISCVExpandPseudo::expandVMSET_VMCLR(MachineBasicBlock &MBB,
270 BuildMI(MBB, MBBI, DL, Desc, DstReg)
277 bool RISCVExpandPseudo::expandMV_FPR16INX(MachineBasicBlock &MBB,
286 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADDI), DstReg)
294 bool RISCVExpandPseudo::expandMV_FPR32INX(MachineBasicBlock &MBB,
303 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADDI), DstReg)
314 bool RISCVExpandPseudo::expandRV32ZdinxStore(MachineBasicBlock &MBB,
323 auto MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
332 MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
338 MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
344 MachineFunction *MF = MBB.getParent();
361 bool RISCVExpandPseudo::expandRV32ZdinxLoad(MachineBasicBlock &MBB,
377 MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
386 MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
392 MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
399 MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
404 MachineFunction *MF = MBB.getParent();
437 bool expandMBB(MachineBasicBlock &MBB);
438 bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
440 bool expandAuipcInstPair(MachineBasicBlock &MBB,
444 bool expandLoadLocalAddress(MachineBasicBlock &MBB,
447 bool expandLoadGlobalAddress(MachineBasicBlock &MBB,
450 bool expandLoadTLSIEAddress(MachineBasicBlock &MBB,
453 bool expandLoadTLSGDAddress(MachineBasicBlock &MBB,
456 bool expandLoadTLSDescAddress(MachineBasicBlock &MBB,
463 for (auto &MBB : MF)
464 for (auto &MI : MBB)
482 for (auto &MBB : MF)
483 Modified |= expandMBB(MBB);
492 bool RISCVPreRAExpandPseudo::expandMBB(MachineBasicBlock &MBB) {
495 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
498 Modified |= expandMI(MBB, MBBI, NMBBI);
505 bool RISCVPreRAExpandPseudo::expandMI(MachineBasicBlock &MBB,
511 return expandLoadLocalAddress(MBB, MBBI, NextMBBI);
513 return expandLoadGlobalAddress(MBB, MBBI, NextMBBI);
515 return expandLoadTLSIEAddress(MBB, MBBI, NextMBBI);
517 return expandLoadTLSGDAddress(MBB, MBBI, NextMBBI);
519 return expandLoadTLSDescAddress(MBB, MBBI, NextMBBI);
525 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
528 MachineFunction *MF = MBB.getParent();
541 BuildMI(MBB, MBBI, DL, TII->get(RISCV::AUIPC), ScratchReg).add(Symbol);
545 BuildMI(MBB, MBBI, DL, TII->get(SecondOpcode), DestReg)
557 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
559 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_PCREL_HI,
564 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
567 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_GOT_HI,
572 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
575 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_TLS_GOT_HI,
580 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
582 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_TLS_GD_HI,
587 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
589 MachineFunction *MF = MBB.getParent();
607 BuildMI(MBB, MBBI, DL, TII->get(RISCV::AUIPC), ScratchReg).add(Symbol);
610 BuildMI(MBB, MBBI, DL, TII->get(SecondOpcode), DestReg)
614 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADDI), RISCV::X10)
618 BuildMI(MBB, MBBI, DL, TII->get(RISCV::PseudoTLSDESCCall), RISCV::X5)
623 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADD), FinalReg)