Lines Matching refs:MF
64 bool mayUseThunk(const MachineFunction &MF, bool InsertedThunks) { in mayUseThunk()
67 const auto &STI = MF.getSubtarget<X86Subtarget>(); in mayUseThunk()
72 bool insertThunks(MachineModuleInfo &MMI, MachineFunction &MF);
73 void populateThunk(MachineFunction &MF);
78 bool mayUseThunk(const MachineFunction &MF, bool InsertedThunks) { in mayUseThunk()
81 return MF.getSubtarget<X86Subtarget>().useLVIControlFlowIntegrity(); in mayUseThunk()
83 bool insertThunks(MachineModuleInfo &MMI, MachineFunction &MF) { in insertThunks()
87 void populateThunk(MachineFunction &MF) { in populateThunk()
88 assert (MF.size() == 1); in populateThunk()
89 MachineBasicBlock *Entry = &MF.front(); in populateThunk()
100 const TargetInstrInfo *TII = MF.getSubtarget<X86Subtarget>().getInstrInfo(); in populateThunk()
101 BuildMI(&MF.front(), DebugLoc(), TII->get(X86::LFENCE)); in populateThunk()
102 BuildMI(&MF.front(), DebugLoc(), TII->get(X86::JMP64r)).addReg(X86::R11); in populateThunk()
103 MF.front().addLiveIn(X86::R11); in populateThunk()
116 bool runOnMachineFunction(MachineFunction &MF) override;
129 static bool runTIs(MachineModuleInfo &MMI, MachineFunction &MF, in runTIs() argument
133 Modified |= std::get<ThunkInserterT>(ThunkInserters).run(MMI, MF)...}; in runTIs()
141 MachineFunction &MF) { in insertThunks() argument
151 void RetpolineThunkInserter::populateThunk(MachineFunction &MF) { in populateThunk() argument
152 bool Is64Bit = MF.getTarget().getTargetTriple().getArch() == Triple::x86_64; in populateThunk()
155 assert(MF.getName() == "__llvm_retpoline_r11" && in populateThunk()
197 if (MF.getName() == EAXRetpolineName) in populateThunk()
199 else if (MF.getName() == ECXRetpolineName) in populateThunk()
201 else if (MF.getName() == EDXRetpolineName) in populateThunk()
203 else if (MF.getName() == EDIRetpolineName) in populateThunk()
209 const TargetInstrInfo *TII = MF.getSubtarget<X86Subtarget>().getInstrInfo(); in populateThunk()
210 assert (MF.size() == 1); in populateThunk()
211 MachineBasicBlock *Entry = &MF.front(); in populateThunk()
215 MF.CreateMachineBasicBlock(Entry->getBasicBlock()); in populateThunk()
217 MF.CreateMachineBasicBlock(Entry->getBasicBlock()); in populateThunk()
218 MCSymbol *TargetSym = MF.getContext().createTempSymbol(); in populateThunk()
219 MF.push_back(CaptureSpec); in populateThunk()
220 MF.push_back(CallTarget); in populateThunk()
258 CallTarget->back().setPreInstrSymbol(MF, TargetSym); in populateThunk()
273 bool X86IndirectThunks::runOnMachineFunction(MachineFunction &MF) { in runOnMachineFunction() argument
276 return runTIs(MMI, MF, TIs); in runOnMachineFunction()