|
LLVM 24.0.0git
|
#include "X86.h"#include "X86InstrInfo.h"#include "X86Subtarget.h"#include "X86TargetMachine.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/IR/Module.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "x86-indirect-branch-tracking" |
Functions | |
| STATISTIC (NumEndBranchAdded, "Number of ENDBR instructions added") | |
| INITIALIZE_PASS (X86IndirectBranchTrackingLegacy, DEBUG_TYPE, "X86 Indirect Branch Tracking", false, false) FunctionPass *llvm | |
| static bool | IsCallReturnTwice (llvm::MachineOperand &MOp) |
| static bool | needsPrologueENDBR (MachineFunction &MF, const Module *M) |
| static bool | runIndirectBranchTracking (MachineFunction &MF) |
| #define DEBUG_TYPE "x86-indirect-branch-tracking" |
Definition at line 30 of file X86IndirectBranchTracking.cpp.
| INITIALIZE_PASS | ( | X86IndirectBranchTrackingLegacy | , |
| DEBUG_TYPE | , | ||
| "X86 Indirect Branch Tracking" | , | ||
| false | , | ||
| false | ) |
Definition at line 76 of file X86IndirectBranchTracking.cpp.
References llvm::createX86IndirectBranchTrackingLegacyPass(), and DEBUG_TYPE.
|
static |
Definition at line 83 of file X86IndirectBranchTracking.cpp.
References llvm::dyn_cast(), llvm::MachineOperand::getGlobal(), and llvm::MachineOperand::isGlobal().
Referenced by runIndirectBranchTracking().
|
static |
Definition at line 94 of file X86IndirectBranchTracking.cpp.
References F, llvm::TargetMachine::getCodeModel(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getTarget(), and llvm::CodeModel::Large.
Referenced by runIndirectBranchTracking().
|
static |
Definition at line 110 of file X86IndirectBranchTracking.cpp.
References llvm::MachineFunction::begin(), Changed, llvm::TargetOptions::ExceptionModel, llvm::X86TargetMachine::getCLOpts(), llvm::MachineFunction::getFunction(), llvm::GlobalValue::getParent(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::hasCallSiteLandingPad(), I, IsCallReturnTwice(), llvm::X86TargetMachine::isJIT(), MBB, needsPrologueENDBR(), llvm::TargetMachine::Options, and llvm::SjLj.
Referenced by llvm::X86IndirectBranchTrackingPass::run().
| STATISTIC | ( | NumEndBranchAdded | , |
| "Number of ENDBR instructions added" | ) |