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 expandVSetVL(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI);
50 bool expandVMSET_VMCLR(MachineBasicBlock &MBB,
52 bool expandRV32ZdinxStore(MachineBasicBlock &MBB,
54 bool expandRV32ZdinxLoad(MachineBasicBlock &MBB,
59 for (auto &MBB : MF)
60 for (auto &MI : MBB)
78 for (auto &MBB : MF)
79 Modified |= expandMBB(MBB);
88 bool RISCVExpandPseudo::expandMBB(MachineBasicBlock &MBB) {
91 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
94 Modified |= expandMI(MBB, MBBI, NMBBI);
101 bool RISCVExpandPseudo::expandMI(MachineBasicBlock &MBB,
109 return expandRV32ZdinxStore(MBB, MBBI);
111 return expandRV32ZdinxLoad(MBB, MBBI);
141 return expandCCOp(MBB, MBBI, NextMBBI);
145 return expandVSetVL(MBB, MBBI);
154 return expandVMSET_VMCLR(MBB, MBBI, RISCV::VMXOR_MM);
163 return expandVMSET_VMCLR(MBB, MBBI, RISCV::VMXNOR_MM);
169 bool RISCVExpandPseudo::expandCCOp(MachineBasicBlock &MBB,
173 MachineFunction *MF = MBB.getParent();
177 MachineBasicBlock *TrueBB = MF->CreateMachineBasicBlock(MBB.getBasicBlock());
178 MachineBasicBlock *MergeBB = MF->CreateMachineBasicBlock(MBB.getBasicBlock());
180 MF->insert(++MBB.getIterator(), TrueBB);
190 BuildMI(MBB, MBBI, DL, TII->getBrCond(CC))
244 MergeBB->splice(MergeBB->end(), &MBB, MI, MBB.end());
245 MergeBB->transferSuccessors(&MBB);
247 MBB.addSuccessor(TrueBB);
248 MBB.addSuccessor(MergeBB);
250 NextMBBI = MBB.end();
261 bool RISCVExpandPseudo::expandVSetVL(MachineBasicBlock &MBB,
282 BuildMI(MBB, MBBI, DL, Desc)
291 bool RISCVExpandPseudo::expandVMSET_VMCLR(MachineBasicBlock &MBB,
297 BuildMI(MBB, MBBI, DL, Desc, DstReg)
307 bool RISCVExpandPseudo::expandRV32ZdinxStore(MachineBasicBlock &MBB,
318 MachineFunction *MF = MBB.getParent();
322 BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
334 BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
341 BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
354 bool RISCVExpandPseudo::expandRV32ZdinxLoad(MachineBasicBlock &MBB,
365 MachineFunction *MF = MBB.getParent();
374 BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
384 BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
391 BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
399 BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
428 bool expandMBB(MachineBasicBlock &MBB);
429 bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
431 bool expandAuipcInstPair(MachineBasicBlock &MBB,
435 bool expandLoadLocalAddress(MachineBasicBlock &MBB,
438 bool expandLoadGlobalAddress(MachineBasicBlock &MBB,
441 bool expandLoadTLSIEAddress(MachineBasicBlock &MBB,
444 bool expandLoadTLSGDAddress(MachineBasicBlock &MBB,
447 bool expandLoadTLSDescAddress(MachineBasicBlock &MBB,
454 for (auto &MBB : MF)
455 for (auto &MI : MBB)
473 for (auto &MBB : MF)
474 Modified |= expandMBB(MBB);
483 bool RISCVPreRAExpandPseudo::expandMBB(MachineBasicBlock &MBB) {
486 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
489 Modified |= expandMI(MBB, MBBI, NMBBI);
496 bool RISCVPreRAExpandPseudo::expandMI(MachineBasicBlock &MBB,
502 return expandLoadLocalAddress(MBB, MBBI, NextMBBI);
504 return expandLoadGlobalAddress(MBB, MBBI, NextMBBI);
506 return expandLoadTLSIEAddress(MBB, MBBI, NextMBBI);
508 return expandLoadTLSGDAddress(MBB, MBBI, NextMBBI);
510 return expandLoadTLSDescAddress(MBB, MBBI, NextMBBI);
516 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
519 MachineFunction *MF = MBB.getParent();
532 BuildMI(MBB, MBBI, DL, TII->get(RISCV::AUIPC), ScratchReg).add(Symbol);
536 BuildMI(MBB, MBBI, DL, TII->get(SecondOpcode), DestReg)
548 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
550 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_PCREL_HI,
555 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
558 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_GOT_HI,
563 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
566 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_TLS_GOT_HI,
571 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
573 return expandAuipcInstPair(MBB, MBBI, NextMBBI, RISCVII::MO_TLS_GD_HI,
578 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
580 MachineFunction *MF = MBB.getParent();
598 BuildMI(MBB, MBBI, DL, TII->get(RISCV::AUIPC), ScratchReg).add(Symbol);
601 BuildMI(MBB, MBBI, DL, TII->get(SecondOpcode), DestReg)
605 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADDI), RISCV::X10)
609 BuildMI(MBB, MBBI, DL, TII->get(RISCV::PseudoTLSDESCCall), RISCV::X5)
614 BuildMI(MBB, MBBI, DL, TII->get(RISCV::ADD), FinalReg)