Lines Matching refs:MBB

63                       MachineBasicBlock &MBB, const DebugLoc &DL);
65 MachineBasicBlock &MBB, const DebugLoc &DL,
68 static void addEpilog(const TargetInstrInfo *TII, MachineBasicBlock &MBB,
70 static void addEpilogLeaf(const TargetInstrInfo *TII, MachineBasicBlock &MBB,
74 static void addEpilogOnlyR10(const TargetInstrInfo *TII, MachineBasicBlock &MBB,
86 MachineBasicBlock &MBB, const DebugLoc &DL) { in addProlog() argument
90 auto MBBI = MBB.begin(); in addProlog()
92 addDirectMem(BuildMI(MBB, MBBI, DL, TII->get(X86::MOV64rm)).addDef(ReturnReg), in addProlog()
95 BuildMI(MBB, MBBI, DL, TII->get(X86::XOR64rr)) in addProlog()
100 addSegmentedMem(BuildMI(MBB, MBBI, DL, TII->get(X86::ADD64mi8)), X86::GS, in addProlog()
105 BuildMI(MBB, MBBI, DL, TII->get(X86::MOV64rm)).addDef(OffsetReg), X86::GS, in addProlog()
108 addSegmentedMem(BuildMI(MBB, MBBI, DL, TII->get(X86::MOV64mr)), X86::GS, in addProlog()
114 MachineBasicBlock &MBB, const DebugLoc &DL, in addPrologLeaf() argument
117 addDirectMem(BuildMI(MBB, MBB.begin(), DL, TII->get(X86::MOV64rm)) in addPrologLeaf()
122 static void addEpilog(const TargetInstrInfo *TII, MachineBasicBlock &MBB, in addEpilog() argument
127 BuildMI(MBB, MI, DL, TII->get(X86::XOR64rr)) in addEpilog()
132 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::MOV64rm)).addDef(X86::R10), in addEpilog()
135 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::MOV64rm)).addDef(X86::R10), in addEpilog()
139 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::SUB64mi8)), in addEpilog()
143 addDirectMem(BuildMI(MBB, MI, DL, TII->get(X86::CMP64mr)), X86::RSP) in addEpilog()
146 BuildMI(MBB, MI, DL, TII->get(X86::JNE_1)).addMBB(&TrapBB); in addEpilog()
147 MBB.addSuccessor(&TrapBB); in addEpilog()
150 static void addEpilogLeaf(const TargetInstrInfo *TII, MachineBasicBlock &MBB, in addEpilogLeaf() argument
156 addDirectMem(BuildMI(MBB, MI, DL, TII->get(X86::CMP64mr)), X86::RSP) in addEpilogLeaf()
159 BuildMI(MBB, MI, DL, TII->get(X86::JNE_1)).addMBB(&TrapBB); in addEpilogLeaf()
160 MBB.addSuccessor(&TrapBB); in addEpilogLeaf()
163 static void addEpilogOnlyR10(const TargetInstrInfo *TII, MachineBasicBlock &MBB, in addEpilogOnlyR10() argument
168 BuildMI(MBB, MI, DL, TII->get(X86::XOR64rr)) in addEpilogOnlyR10()
173 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::MOV64rm)).addDef(X86::R10), in addEpilogOnlyR10()
176 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::MOV64rm)).addDef(X86::R10), in addEpilogOnlyR10()
180 addSegmentedMem(BuildMI(MBB, MI, DL, TII->get(X86::SUB64mi8)), X86::GS, 0) in addEpilogOnlyR10()
183 addDirectMem(BuildMI(MBB, MI, DL, TII->get(X86::CMP64mr)), X86::RSP) in addEpilogOnlyR10()
186 BuildMI(MBB, MI, DL, TII->get(X86::JNE_1)).addMBB(&TrapBB); in addEpilogOnlyR10()
187 MBB.addSuccessor(&TrapBB); in addEpilogOnlyR10()
205 for (auto &MBB : Fn) { in runOnMachineFunction() local
206 if (MBB.empty()) in runOnMachineFunction()
209 const MachineInstr &MI = MBB.instr_back(); in runOnMachineFunction()
237 for (auto &MBB : Fn) { in runOnMachineFunction() local
238 for (auto &LiveIn : MBB.liveins()) in runOnMachineFunction()
240 for (auto &MI : MBB) { in runOnMachineFunction()
282 MachineBasicBlock &MBB = Fn.front(); in runOnMachineFunction() local
283 const MachineBasicBlock *NonEmpty = MBB.empty() ? MBB.getFallThrough() : &MBB; in runOnMachineFunction()
288 addPrologLeaf(Fn, TII, MBB, DL, LeafFuncRegister); in runOnMachineFunction()
290 addProlog(Fn, TII, MBB, DL); in runOnMachineFunction()
293 for (auto &MBB : Fn) { in runOnMachineFunction() local
294 if (MBB.empty()) in runOnMachineFunction()
297 MachineInstr &MI = MBB.instr_back(); in runOnMachineFunction()
306 addEpilogLeaf(TII, MBB, MI, *Trap, LeafFuncRegister); in runOnMachineFunction()
308 addEpilogOnlyR10(TII, MBB, MI, *Trap); in runOnMachineFunction()
310 addEpilog(TII, MBB, MI, *Trap); in runOnMachineFunction()