Home | History | Annotate | Download | only in X86

Lines Matching full:mbb

89 static unsigned findDeadCallerSavedReg(MachineBasicBlock &MBB,
93 const MachineFunction *MF = MBB.getParent();
146 void emitSPUpdate(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
161 DebugLoc DL = MBB.findDebugLoc(MBBI);
169 : findDeadCallerSavedReg(MBB, MBBI, TRI, Is64Bit);
174 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opc))
186 MI = addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr),
189 MI = BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr)
204 void mergeSPUpdatesUp(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
206 if (MBBI == MBB.begin()) return;
216 MBB.erase(PI);
222 MBB.erase(PI);
228 void mergeSPUpdatesDown(MachineBasicBlock &MBB,
234 if (MBBI == MBB.end()) return;
237 if (NI == MBB.end()) return;
245 MBB.erase(NI);
252 MBB.erase(NI);
261 static int mergeSPUpdates(MachineBasicBlock &MBB,
265 if ((doMergeWithPrevious && MBBI == MBB.begin()) ||
266 (!doMergeWithPrevious && MBBI == MBB.end()))
279 MBB.erase(PI);
285 MBB.erase(PI);
511 MachineBasicBlock &MBB = MF.front(); // Prologue is in entry BB.
514 MBBI = MBB.begin(), MBBE = MBB.end(); MBBI != MBBE; ++MBBI) {
646 MachineBasicBlock &MBB = MF.front(); // Prologue goes in entry BB.
647 MachineBasicBlock::iterator MBBI = MBB.begin();
711 BuildMI(MBB, MBBI, DL,
755 BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::PUSH64r : X86::PUSH32r))
762 BuildMI(MBB, MBBI, DL, TII.get(X86::PROLOG_LABEL))
777 BuildMI(MBB, MBBI, DL,
785 BuildMI(MBB, MBBI, DL, TII.get(X86::PROLOG_LABEL))
806 while (MBBI != MBB.end() &&
816 BuildMI(MBB, MBBI, DL, TII.get(X86::PROLOG_LABEL)).addSym(Label);
837 BuildMI(MBB, MBBI, DL,
850 NumBytes -= mergeSPUpdates(MBB, MBBI, StackPtr, true);
854 mergeSPUpdatesDown(MBB, MBBI, StackPtr, &NumBytes);
891 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH32r))
899 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), X86::RAX)
905 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
910 BuildMI(MBB, MBBI, DL,
920 BuildMI(MBB, MBBI, DL, TII.get(X86::SUB64rr), StackPtr)
932 MBB.insert(MBBI, MI);
935 emitSPUpdate(MBB, MBBI, StackPtr, -(int64_t)NumBytes, Is64Bit, IsLP64,
945 BuildMI(MBB, MBBI, DL, TII.get(Opc), BasePtr)
953 BuildMI(MBB, MBBI, DL, TII.get(X86::PROLOG_LABEL))
975 MachineBasicBlock &MBB) const {
980 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr();
981 assert(MBBI != MBB.end() && "Returning block has no instructions");
1038 BuildMI(MBB, MBBI, DL,
1045 while (MBBI != MBB.begin()) {
1062 mergeSPUpdatesUp(MBB, MBBI, StackPtr, &NumBytes);
1072 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr),
1076 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr)
1081 emitSPUpdate(MBB, MBBI, StackPtr, NumBytes, Is64Bit, IsLP64, UseLEA,
1087 MBBI = MBB.getLastNonDebugInstr();
1090 BuildMI(MBB, MBBI, DL,
1099 MBBI = MBB.getLastNonDebugInstr();
1116 Offset += mergeSPUpdates(MBB, MBBI, StackPtr, true);
1117 emitSPUpdate(MBB, MBBI, StackPtr, Offset, Is64Bit, IsLP64,
1124 BuildMI(MBB, MBBI, DL, TII.get((RetOpcode == X86::TCRETURNdi)
1136 BuildMI(MBB, MBBI, DL, TII.get((RetOpcode == X86::TCRETURNmi)
1141 BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr64)).
1144 BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr)).
1152 MBB.erase(MBBI);
1157 MBBI = MBB.getLastNonDebugInstr();
1160 delta += mergeSPUpdates(MBB, MBBI, StackPtr, true);
1161 emitSPUpdate(MBB, MBBI, StackPtr, delta, Is64Bit, IsLP64, UseLEA, TII,
1224 bool X86FrameLowering::spillCalleeSavedRegisters(MachineBasicBlock &MBB,
1231 DebugLoc DL = MBB.findDebugLoc(MI);
1233 MachineFunction &MF = *MBB.getParent();
1250 MBB.addLiveIn(Reg);
1255 BuildMI(MBB, MI, DL, TII.get(Opc)).addReg(Reg, RegState::Kill)
1270 MBB.addLiveIn(Reg);
1272 TII.storeRegToStackSlot(MBB, MI, Reg, true, CSI[i-1].getFrameIdx(),
1279 bool X86FrameLowering::restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
1286 DebugLoc DL = MBB.findDebugLoc(MI);
1288 MachineFunction &MF = *MBB.getParent();
1298 TII.loadRegFromStackSlot(MBB, MI, Reg, CSI[i].getFrameIdx(),
1313 BuildMI(MBB, MI, DL, TII.get(Opc), Reg);
1716 // Create new MBB for StackCheck:
1724 // Create new MBB for IncStack:
1744 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
1756 I = MBB.erase(I);
1796 MBB.insert(I, New);
1816 MachineBasicBlock::iterator B = MBB.begin();
1819 MBB.insert(I, New);