Lines Matching defs:MBBI

229                                     MachineBasicBlock::iterator &MBBI,
241 BuildMI(MBB, MBBI, DL, TII.get(X86::TRAP));
258 BuildMI(MBB, MBBI, DL, TII.get(X86::STACKALLOC_W_PROBING)).addImm(Offset);
269 Reg = getX86SubSuperRegister(TRI->findDeadCallerSavedReg(MBB, MBBI),
275 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Uses64BitFramePtr, Offset)),
279 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AddSubRROpc), StackPtr)
293 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
302 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Uses64BitFramePtr, Offset)),
306 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(X86::ADD64rr), Rax)
312 BuildMI(MBB, MBBI, DL, TII.get(X86::XCHG64rm), Rax).addReg(Rax),
315 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rm), StackPtr),
327 : TRI->findDeadCallerSavedReg(MBB, MBBI);
331 BuildMI(MBB, MBBI, DL, TII.get(Opc))
339 BuildStackAdjustment(MBB, MBBI, DL, isSub ? -ThisVal : ThisVal, InEpilogue)
347 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
377 MI = addRegOffset(BuildMI(MBB, MBBI, DL,
386 MI = BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr)
395 MachineBasicBlock::iterator &MBBI,
397 if ((doMergeWithPrevious && MBBI == MBB.begin()) ||
398 (!doMergeWithPrevious && MBBI == MBB.end()))
401 MachineBasicBlock::iterator PI = doMergeWithPrevious ? std::prev(MBBI) : MBBI;
449 MBBI = skipDebugInstructionsForward(PI, MBB.end());
455 MachineBasicBlock::iterator MBBI,
465 BuildMI(MBB, MBBI, DL, TII.get(TargetOpcode::CFI_INSTRUCTION))
473 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI) const {
476 emitCalleeSavedFrameMoves(MBB, MBBI, DebugLoc{}, true);
487 BuildCFI(MBB, MBBI, DebugLoc{},
489 emitCalleeSavedFrameMoves(MBB, MBBI, DebugLoc{}, true);
493 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
530 BuildCFI(MBB, MBBI, DL,
534 BuildCFI(MBB, MBBI, DL,
538 BuildCFI(MBB, MBBI, DL,
562 BuildCFI(MBB, MBBI, DL,
573 MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator();
577 if (MBBI != MBB.end())
578 DL = MBBI->getDebugLoc();
589 BuildMI(MBB, MBBI, DL, TII.get(X86::LD_F0));
592 BuildMI(MBB, MBBI, DL, TII.get(X86::ST_FPrr)).addReg(X86::ST0);
606 TII.buildClearRegister(Reg, MBB, MBBI, DL);
610 TII.buildClearRegister(Reg, MBB, MBBI, DL);
615 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog,
620 BuildMI(MBB, MBBI, DL, TII.get(X86::STACKALLOC_W_PROBING))
623 emitStackProbeInline(MF, MBB, MBBI, DL, false);
626 emitStackProbeCall(MF, MBB, MBBI, DL, InProlog, InstrNum);
648 MachineBasicBlock::iterator MBBI,
653 emitStackProbeInlineWindowsCoreCLR64(MF, MBB, MBBI, DL, InProlog);
655 emitStackProbeInlineGeneric(MF, MBB, MBBI, DL, InProlog);
660 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog) const {
661 MachineInstr &AllocWithProbe = *MBBI;
679 emitStackProbeInlineGenericLoop(MF, MBB, MBBI, DL, Offset,
682 emitStackProbeInlineGenericBlock(MF, MBB, MBBI, DL, Offset,
689 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, uint64_t Offset,
707 BuildStackAdjustment(MBB, MBBI, DL, -StackAdjustment, /*InEpilogue=*/false)
711 MBB, MBBI, DL,
715 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
728 BuildStackAdjustment(MBB, MBBI, DL, -StackProbeSize, /*InEpilogue=*/false)
733 MBB, MBBI, DL,
736 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
752 BuildMI(MBB, MBBI, DL, TII.get(Opc))
756 BuildStackAdjustment(MBB, MBBI, DL, -ChunkSize, /*InEpilogue=*/false)
765 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, uint64_t Offset,
769 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
783 BuildStackAdjustment(MBB, MBBI, DL, -AlignOffset, /*InEpilogue=*/false)
786 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
824 BuildMI(MBB, MBBI, DL, TII.get(TargetOpcode::COPY), FinalStackProbed)
827 BuildMI(MBB, MBBI, DL, TII.get(SUBOpc), FinalStackProbed)
832 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), FinalStackProbed)
835 BuildMI(MBB, MBBI, DL, TII.get(X86::ADD64rr), FinalStackProbed)
853 BuildCFI(MBB, MBBI, DL,
856 BuildCFI(MBB, MBBI, DL,
888 tailMBB->splice(tailMBB->end(), &MBB, MBBI, MBB.end());
921 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog) const {
928 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
970 MachineBasicBlock::iterator BeforeMBBI = std::prev(MBBI);
971 ContinueMBB->splice(ContinueMBB->begin(), &MBB, MBBI, MBB.end());
1162 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog,
1171 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
1184 MachineBasicBlock::iterator ExpansionMBBI = std::prev(MBBI);
1191 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), X86::R11)
1193 CI = BuildMI(MBB, MBBI, DL, TII.get(CallOp)).addReg(X86::R11);
1195 CI = BuildMI(MBB, MBBI, DL, TII.get(CallOp))
1216 BuildMI(MBB, MBBI, DL, TII.get(getSUBrrOpcode(Uses64BitFramePtr)), SP)
1240 for (++ExpansionMBBI; ExpansionMBBI != MBBI; ++ExpansionMBBI)
1281 MachineBasicBlock::iterator MBBI,
1321 entryMBB->splice(entryMBB->end(), &MBB, MBB.begin(), MBBI);
1418 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AndOp), Reg)
1566 MachineBasicBlock::iterator MBBI = MBB.begin();
1608 BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::LEA64r : X86::LEA32r),
1619 BuildCFI(MBB, MBBI, DL,
1623 BuildStackAlignAND(MBB, MBBI, DL, StackPtr, MaxAlign);
1625 BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::PUSH64rmm : X86::PUSH32rmm))
1650 BuildMI(MBB, MBBI, DL, TII.get(X86::OR64rm), MachineFramePtr)
1666 BuildMI(MBB, MBBI, DL, TII.get(X86::BTS64ri8), MachineFramePtr)
1694 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
1723 BuildStackAdjustment(MBB, MBBI, DL, -(int)TailCallArgReserveSize,
1757 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MOVmr)), StackPtr, true, 16)
1776 BuildMI(MBB, MBBI, DL,
1785 BuildCFI(MBB, MBBI, DL,
1792 BuildCFI(MBB, MBBI, DL,
1801 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1819 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
1825 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64i32))
1832 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1837 BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), FramePtr)
1844 BuildMI(MBB, MBBI, DL, TII.get(X86::SUB64ri32), X86::RSP)
1853 BuildMI(MBB, MBBI, DL,
1870 BuildCFI(MBB, MBBI, DL,
1878 MBB, MBBI, DL,
1887 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SetFrame))
1918 MachineBasicBlock::const_iterator LastCSPush = MBBI;
1919 auto IsCSPush = [&](const MachineBasicBlock::iterator &MBBI) {
1920 if (MBBI == MBB.end() || !MBBI->getFlag(MachineInstr::FrameSetup))
1922 unsigned Opc = MBBI->getOpcode();
1927 while (IsCSPush(MBBI)) {
1929 Register Reg = MBBI->getOperand(0).getReg();
1930 LastCSPush = MBBI;
1931 ++MBBI;
1942 BuildCFI(MBB, MBBI, DL,
1950 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1954 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1966 BuildStackAlignAND(MBB, MBBI, DL, StackPtr, MaxAlign);
1970 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_StackAlign))
1979 NumBytes -= mergeSPUpdates(MBB, MBBI, true);
2004 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
2009 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH32r))
2019 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Is64Bit, Alloc)), X86::RAX)
2025 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
2031 emitStackProbe(MF, MBB, MBBI, DL, true);
2043 MBB.insert(MBBI, MI);
2046 emitSPUpdate(MBB, MBBI, DL, -(int64_t)NumBytes, /*InEpilogue=*/false);
2051 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_StackAlloc))
2067 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rm), Establisher),
2074 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mr)), StackPtr,
2093 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), FramePtr),
2096 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rr), FramePtr)
2103 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SetFrame))
2112 MBBI = restoreWin32EHStackPointers(MBB, MBBI, DL);
2121 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32mr)), FrameReg,
2127 while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup)) {
2128 const MachineInstr &FrameInstr = *MBBI;
2129 ++MBBI;
2146 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SaveXMM))
2156 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_EndPrologue))
2166 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mr)), StackPtr, false,
2179 BuildStackAlignAND(MBB, MBBI, DL, SPOrEstablisher, MaxAlign);
2193 BuildMI(MBB, MBBI, DL, TII.get(Opc), BasePtr)
2200 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opm)), FramePtr, true,
2217 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opm)), UsedReg, true, Offset)
2228 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(MOVmr)), FI)
2239 MBB, MBBI, DL,
2245 emitCalleeSavedFrameMoves(MBB, MBBI, DL, true);
2286 BuildMI(MBB, MBBI, DL, TII.get(X86::CLD))
2383 MachineBasicBlock::iterator MBBI = Terminator;
2385 if (MBBI != MBB.end())
2386 DL = MBBI->getDebugLoc();
2396 bool IsFunclet = MBBI == MBB.end() ? false : isFuncletReturnInstr(*MBBI);
2421 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackReg)
2430 BuildCFI(MBB, MBBI, DL,
2433 --MBBI;
2435 --MBBI;
2456 MachineBasicBlock::iterator AfterPop = MBBI;
2460 int Offset = 16 + mergeSPUpdates(MBB, MBBI, true);
2461 emitSPUpdate(MBB, MBBI, DL, Offset, /*InEpilogue*/ true);
2464 BuildMI(MBB, MBBI, DL,
2472 BuildMI(MBB, MBBI, DL, TII.get(X86::BTR64ri8), MachineFramePtr)
2482 BuildCFI(MBB, MBBI, DL,
2491 --MBBI;
2494 --MBBI;
2498 MachineBasicBlock::iterator FirstCSPop = MBBI;
2500 while (MBBI != MBB.begin()) {
2501 MachineBasicBlock::iterator PI = std::prev(MBBI);
2513 --MBBI;
2521 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(MOVrm), ArgBaseReg), FI)
2524 MBBI = FirstCSPop;
2529 if (MBBI != MBB.end())
2530 DL = MBBI->getDebugLoc();
2534 NumBytes += mergeSPUpdates(MBB, MBBI, true);
2543 MBBI = FirstCSPop;
2560 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr), FramePtr,
2562 --MBBI;
2565 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr).addReg(FramePtr);
2566 --MBBI;
2570 emitSPUpdate(MBB, MBBI, DL, NumBytes, /*InEpilogue=*/true);
2573 BuildCFI(MBB, MBBI, DL,
2578 --MBBI;
2588 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_Epilogue));
2591 MBBI = FirstCSPop;
2595 while (MBBI != MBB.end()) {
2596 MachineBasicBlock::iterator PI = MBBI;
2598 ++MBBI;
2606 BuildCFI(MBB, MBBI, DL,
3072 MachineBasicBlock::iterator MBBI,
3084 BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), X86::RAX)
3092 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
3519 // non-meta instructions between MBBI and MBB.end().
3521 MachineBasicBlock::const_iterator MBBI) {
3525 std::all_of(MBBI, MBB.end(), [](const MachineInstr &MI) {
3685 MachineBasicBlock::iterator MBBI,
3701 if (MBBI == MBB.begin())
3703 MachineBasicBlock::iterator Prev = std::prev(MBBI);
3752 BuildMI(MBB, MBBI, DL, TII.get(STI.is64Bit() ? X86::POP64r : X86::POP32r),
3928 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
3949 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32rm), X86::ESP),
3962 BuildMI(MBB, MBBI, DL, TII.get(ADDri), FramePtr)
3972 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::LEA32r), BasePtr),
3981 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32rm), FramePtr),
3987 return MBBI;
4225 auto MBBI = MBB.begin();
4226 while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup))
4227 ++MBBI;
4229 DebugLoc DL = MBB.findDebugLoc(MBBI);
4230 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mi32)),
4459 MachineBasicBlock::const_iterator MBBI = MI, ME = MBB->end();
4460 for (++MBBI; MBBI != ME; ++MBBI)
4461 if (MBBI->isCall())