|
LLVM 24.0.0git
|
Public Member Functions | |
| const char * | getThunkPrefix () |
| bool | mayUseThunk (const MachineFunction &MF) |
| bool | insertThunks (MachineModuleInfo &MMI, MachineFunction &MF, bool ExistingThunks) |
| void | populateThunk (MachineFunction &MF) |
| Public Member Functions inherited from llvm::ThunkInserter< RetpolineThunkInserter > | |
| void | init (Module &M) |
| bool | run (MachineModuleInfo &MMI, MachineFunction &MF) |
Additional Inherited Members | |
| Protected Member Functions inherited from llvm::ThunkInserter< RetpolineThunkInserter > | |
| void | createThunkFunction (MachineModuleInfo &MMI, StringRef Name, bool Comdat=true, StringRef TargetAttrs="") |
| Create an empty thunk function. | |
| void | doInitialization (Module &M) |
| Initializes thunk inserter. | |
| const char * | getThunkPrefix () |
| Returns common prefix for thunk function's names. | |
| bool | mayUseThunk (const MachineFunction &MF) |
| Checks if MF may use thunks (true - maybe, false - definitely not). | |
| bool | insertThunks (MachineModuleInfo &MMI, MachineFunction &MF, bool ExistingThunks) |
| Rewrites the function if necessary, returns the set of thunks added. | |
| void | populateThunk (MachineFunction &MF) |
| Populate the thunk function with instructions. | |
Definition at line 58 of file X86IndirectThunks.cpp.
Definition at line 59 of file X86IndirectThunks.cpp.
References RetpolineNamePrefix.
| bool RetpolineThunkInserter::insertThunks | ( | MachineModuleInfo & | MMI, |
| MachineFunction & | MF, | ||
| bool | ExistingThunks ) |
Definition at line 117 of file X86IndirectThunks.cpp.
References llvm::ThunkInserter< RetpolineThunkInserter >::createThunkFunction(), EAXRetpolineName, ECXRetpolineName, EDIRetpolineName, EDXRetpolineName, llvm::MachineModuleInfo::getTarget(), llvm::TargetMachine::getTargetTriple(), llvm::Triple::isX86_64(), and R11RetpolineName.
|
inline |
Definition at line 60 of file X86IndirectThunks.cpp.
References llvm::MachineFunction::getSubtarget().
| void RetpolineThunkInserter::populateThunk | ( | MachineFunction & | MF | ) |
Definition at line 131 of file X86IndirectThunks.cpp.
References llvm::MachineBasicBlock::addLiveIn(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::addRegOffset(), llvm::MachineBasicBlock::addSuccessor(), llvm::MachineInstrBuilder::addSym(), assert(), llvm::MachineBasicBlock::back(), llvm::BuildMI(), llvm::MachineBasicBlock::clear(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MCContext::createTempSymbol(), llvm::dwarf_linker::DebugLoc, EAXRetpolineName, ECXRetpolineName, EDIRetpolineName, EDXRetpolineName, llvm::MachineFunction::front(), llvm::MachineFunction::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getName(), llvm::GlobalValue::getParent(), llvm::MachineFunction::getSubtarget(), llvm::Module::getTargetTriple(), llvm::Triple::isX86_64(), llvm_unreachable, llvm::MachineFunction::push_back(), llvm::MachineBasicBlock::setAlignment(), llvm::MachineBasicBlock::setMachineBlockAddressTaken(), llvm::MachineInstr::setPreInstrSymbol(), llvm::MachineFunction::size(), SPReg, and TII.