|
LLVM 23.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) |
Variables | |
| cl::opt< bool > | IndirectBranchTracking ("x86-indirect-branch-tracking", cl::init(false), cl::Hidden, cl::desc("Enable X86 indirect branch tracking pass.")) |
| #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 80 of file X86IndirectBranchTracking.cpp.
References llvm::createX86IndirectBranchTrackingLegacyPass(), and DEBUG_TYPE.
|
static |
Definition at line 87 of file X86IndirectBranchTracking.cpp.
References llvm::dyn_cast(), llvm::MachineOperand::getGlobal(), and llvm::MachineOperand::isGlobal().
Referenced by runIndirectBranchTracking().
|
static |
Definition at line 98 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 114 of file X86IndirectBranchTracking.cpp.
References llvm::MachineFunction::begin(), Changed, llvm::TargetOptions::ExceptionModel, llvm::MachineFunction::getFunction(), llvm::GlobalValue::getParent(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::hasCallSiteLandingPad(), I, IndirectBranchTracking, IsCallReturnTwice(), llvm::X86TargetMachine::isJIT(), MBB, needsPrologueENDBR(), llvm::TargetMachine::Options, and llvm::SjLj.
Referenced by llvm::X86IndirectBranchTrackingPass::run().
| STATISTIC | ( | NumEndBranchAdded | , |
| "Number of ENDBR instructions added" | ) |
| cl::opt< bool > IndirectBranchTracking("x86-indirect-branch-tracking", cl::init(false), cl::Hidden, cl::desc("Enable X86 indirect branch tracking pass.")) | ( | "x86-indirect-branch-tracking" | , |
| cl::init(false) | , | ||
| cl::Hidden | , | ||
| cl::desc("Enable X86 indirect branch tracking pass.") | ) |
Referenced by runIndirectBranchTracking().