Lines Matching refs:MF
64 bool mayUseThunk(const MachineFunction &MF) { in mayUseThunk()
65 const auto &STI = MF.getSubtarget<X86Subtarget>(); in mayUseThunk()
71 void populateThunk(MachineFunction &MF);
76 bool mayUseThunk(const MachineFunction &MF) { in mayUseThunk()
77 return MF.getSubtarget<X86Subtarget>().useLVIControlFlowIntegrity(); in mayUseThunk()
82 void populateThunk(MachineFunction &MF) { in populateThunk()
83 assert (MF.size() == 1); in populateThunk()
84 MachineBasicBlock *Entry = &MF.front(); in populateThunk()
95 const TargetInstrInfo *TII = MF.getSubtarget<X86Subtarget>().getInstrInfo(); in populateThunk()
96 BuildMI(&MF.front(), DebugLoc(), TII->get(X86::LFENCE)); in populateThunk()
97 BuildMI(&MF.front(), DebugLoc(), TII->get(X86::JMP64r)).addReg(X86::R11); in populateThunk()
98 MF.front().addLiveIn(X86::R11); in populateThunk()
111 bool runOnMachineFunction(MachineFunction &MF) override;
124 static bool runTIs(MachineModuleInfo &MMI, MachineFunction &MF, in runTIs() argument
128 Modified |= std::get<ThunkInserterT>(ThunkInserters).run(MMI, MF)...}; in runTIs()
144 void RetpolineThunkInserter::populateThunk(MachineFunction &MF) { in populateThunk() argument
145 bool Is64Bit = MF.getTarget().getTargetTriple().getArch() == Triple::x86_64; in populateThunk()
148 assert(MF.getName() == "__llvm_retpoline_r11" && in populateThunk()
190 if (MF.getName() == EAXRetpolineName) in populateThunk()
192 else if (MF.getName() == ECXRetpolineName) in populateThunk()
194 else if (MF.getName() == EDXRetpolineName) in populateThunk()
196 else if (MF.getName() == EDIRetpolineName) in populateThunk()
202 const TargetInstrInfo *TII = MF.getSubtarget<X86Subtarget>().getInstrInfo(); in populateThunk()
203 assert (MF.size() == 1); in populateThunk()
204 MachineBasicBlock *Entry = &MF.front(); in populateThunk()
208 MF.CreateMachineBasicBlock(Entry->getBasicBlock()); in populateThunk()
210 MF.CreateMachineBasicBlock(Entry->getBasicBlock()); in populateThunk()
211 MCSymbol *TargetSym = MF.getContext().createTempSymbol(); in populateThunk()
212 MF.push_back(CaptureSpec); in populateThunk()
213 MF.push_back(CallTarget); in populateThunk()
251 CallTarget->back().setPreInstrSymbol(MF, TargetSym); in populateThunk()
266 bool X86IndirectThunks::runOnMachineFunction(MachineFunction &MF) { in runOnMachineFunction() argument
269 return runTIs(MMI, MF, TIs); in runOnMachineFunction()