Lines Matching defs:MBBI

58   bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
61 MachineBasicBlock::iterator MBBI,
66 MachineBasicBlock::iterator MBBI,
69 MachineBasicBlock::iterator MBBI,
72 MachineBasicBlock::iterator MBBI,
75 MachineBasicBlock::iterator MBBI,
78 MachineBasicBlock::iterator MBBI,
81 MachineBasicBlock::iterator MBBI,
84 MachineBasicBlock::iterator MBBI,
102 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
103 while (MBBI != E) {
104 MachineBasicBlock::iterator NMBBI = std::next(MBBI);
105 Modified |= expandMI(MBB, MBBI, NMBBI);
106 MBBI = NMBBI;
113 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
115 switch (MBBI->getOpcode()) {
117 return expandLoadAddressPcrel(MBB, MBBI, NextMBBI);
119 return expandLoadAddressGot(MBB, MBBI, NextMBBI);
121 return expandLoadAddressTLSLE(MBB, MBBI, NextMBBI);
123 return expandLoadAddressTLSIE(MBB, MBBI, NextMBBI);
125 return expandLoadAddressTLSLD(MBB, MBBI, NextMBBI);
127 return expandLoadAddressTLSGD(MBB, MBBI, NextMBBI);
129 return expandLoadAddressTLSDesc(MBB, MBBI, NextMBBI);
135 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
139 MachineInstr &MI = *MBBI;
147 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PCALAU12I), ScratchReg)
151 BuildMI(MBB, MBBI, DL, TII->get(SecondOpcode), DestReg)
163 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
171 return expandPcalau12iInstPair(MBB, MBBI, NextMBBI, LoongArchII::MO_PCREL_HI,
176 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
184 return expandPcalau12iInstPair(MBB, MBBI, NextMBBI, LoongArchII::MO_GOT_PC_HI,
189 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
200 MachineInstr &MI = *MBBI;
212 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU12I_W), Part1)
215 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::ORI), Parts01)
223 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU32I_D), Parts012)
227 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU52I_D), DestReg)
237 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
245 return expandPcalau12iInstPair(MBB, MBBI, NextMBBI, LoongArchII::MO_IE_PC_HI,
250 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
258 return expandPcalau12iInstPair(MBB, MBBI, NextMBBI, LoongArchII::MO_LD_PC_HI,
263 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
271 return expandPcalau12iInstPair(MBB, MBBI, NextMBBI, LoongArchII::MO_GD_PC_HI,
276 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
285 MachineInstr &MI = *MBBI;
298 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PCALAU12I), ScratchReg)
301 BuildMI(MBB, MBBI, DL, TII->get(ADDI), LoongArch::R4)
305 BuildMI(MBB, MBBI, DL, TII->get(LD), LoongArch::R1)
309 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PseudoDESC_CALL), LoongArch::R1)
313 BuildMI(MBB, MBBI, DL, TII->get(ADD), DestReg)
338 bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
340 bool expandCopyCFR(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
343 MachineBasicBlock::iterator MBBI,
347 MachineBasicBlock::iterator MBBI,
353 MachineBasicBlock::iterator MBBI,
356 MachineBasicBlock::iterator MBBI,
359 MachineBasicBlock::iterator MBBI,
362 MachineBasicBlock::iterator MBBI,
365 MachineBasicBlock::iterator MBBI,
368 MachineBasicBlock::iterator MBBI,
371 MachineBasicBlock::iterator MBBI,
392 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
393 while (MBBI != E) {
394 MachineBasicBlock::iterator NMBBI = std::next(MBBI);
395 Modified |= expandMI(MBB, MBBI, NMBBI);
396 MBBI = NMBBI;
403 MachineBasicBlock::iterator MBBI,
405 switch (MBBI->getOpcode()) {
407 return expandCopyCFR(MBB, MBBI, NextMBBI);
409 return expandLoadAddressPcrelLarge(MBB, MBBI, NextMBBI);
411 return expandLoadAddressGotLarge(MBB, MBBI, NextMBBI);
413 return expandLoadAddressTLSIELarge(MBB, MBBI, NextMBBI);
415 return expandLoadAddressTLSLDLarge(MBB, MBBI, NextMBBI);
417 return expandLoadAddressTLSGDLarge(MBB, MBBI, NextMBBI);
419 return expandLoadAddressTLSDescPcLarge(MBB, MBBI, NextMBBI);
423 return expandFunctionCALL(MBB, MBBI, NextMBBI, /*IsTailCall=*/false);
427 return expandFunctionCALL(MBB, MBBI, NextMBBI, /*IsTailCall=*/true);
434 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
437 MachineInstr &MI = *MBBI;
459 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::SET_CFR_FALSE), DestReg);
461 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::BCEQZ))
487 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
490 MachineInstr &MI = *MBBI;
491 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LastOpcode, IdentifyingMO,
497 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
536 MachineInstr &MI = *MBBI;
543 auto Part1 = BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PCALAU12I), DestReg);
544 auto Part0 = BuildMI(MBB, MBBI, DL, TII->get(LoongArch::ADDI_D), ScratchReg)
546 auto Part2 = BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU32I_D), ScratchReg)
549 auto Part3 = BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU52I_D), ScratchReg)
551 BuildMI(MBB, MBBI, DL, TII->get(LastOpcode), DestReg)
575 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
579 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LoongArch::ADD_D,
584 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
588 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LoongArch::LDX_D,
593 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
597 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LoongArch::LDX_D,
602 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
606 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LoongArch::ADD_D,
611 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
615 return expandLargeAddressLoad(MBB, MBBI, NextMBBI, LoongArch::ADD_D,
620 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
633 MachineInstr &MI = *MBBI;
642 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PCALAU12I), LoongArch::R4)
644 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::ADDI_D), ScratchReg)
647 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU32I_D), ScratchReg)
650 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LU52I_D), ScratchReg)
653 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::ADD_D), LoongArch::R4)
656 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::LD_D), LoongArch::R1)
659 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PseudoDESC_CALL), LoongArch::R1)
662 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::ADD_D), DestReg)
672 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
675 MachineInstr &MI = *MBBI;
691 CALL = BuildMI(MBB, MBBI, DL, TII->get(Opcode)).add(Func);
705 BuildMI(MBB, MBBI, DL, TII->get(LoongArch::PCADDU18I), ScratchReg);
708 BuildMI(MBB, MBBI, DL, TII->get(Opcode)).addReg(ScratchReg).addImm(0);
727 expandLargeAddressLoad(MBB, MBBI, NextMBBI, LAOpcode, MO, Func, AddrReg,
729 CALL = BuildMI(MBB, MBBI, DL, TII->get(Opcode)).addReg(AddrReg).addImm(0);