|
LLVM 24.0.0git
|
#include "ImmutableGraph.h"#include "X86.h"#include "X86Subtarget.h"#include "X86TargetMachine.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/Statistic.h"#include "llvm/ADT/StringRef.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineDominanceFrontier.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/RDFGraph.h"#include "llvm/CodeGen/RDFLiveness.h"#include "llvm/InitializePasses.h"#include "llvm/Support/DOTGraphTraits.h"#include "llvm/Support/Debug.h"#include "llvm/Support/DynamicLibrary.h"#include "llvm/Support/GraphWriter.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Classes | |
| struct | llvm::GraphTraits< MachineGadgetGraph * > |
| struct | llvm::DOTGraphTraits< MachineGadgetGraph * > |
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
| #define | PASS_KEY "x86-lvi-load" |
| #define | DEBUG_TYPE PASS_KEY |
Typedefs | |
| typedef int(* | OptimizeCutT) (unsigned int *Nodes, unsigned int NodesSize, unsigned int *Edges, int *EdgeValues, int *CutEdges, unsigned int EdgesSize) |
Functions | |
| STATISTIC (NumFences, "Number of LFENCEs inserted for LVI mitigation") | |
| STATISTIC (NumFunctionsConsidered, "Number of functions analyzed") | |
| STATISTIC (NumFunctionsMitigated, "Number of functions for which mitigations " "were deployed") | |
| STATISTIC (NumGadgets, "Number of LVI gadgets detected during analysis") | |
| static void | writeGadgetGraph (raw_ostream &OS, MachineFunction &MF, MachineGadgetGraph *G) |
| INITIALIZE_PASS_BEGIN (X86LoadValueInjectionLoadHardeningLegacy, PASS_KEY, "X86 LVI load hardening", false, false) INITIALIZE_PASS_END(X86LoadValueInjectionLoadHardeningLegacy | |
Variables | |
| static llvm::sys::DynamicLibrary | OptimizeDL |
| static OptimizeCutT | OptimizeCut = nullptr |
| PASS_KEY | |
| X86 LVI load | hardening |
| X86 LVI load | false |
| #define DEBUG_TYPE PASS_KEY |
Definition at line 68 of file X86LoadValueInjectionLoadHardening.cpp.
| #define PASS_KEY "x86-lvi-load" |
Definition at line 67 of file X86LoadValueInjectionLoadHardening.cpp.
| typedef int(* OptimizeCutT) (unsigned int *Nodes, unsigned int NodesSize, unsigned int *Edges, int *EdgeValues, int *CutEdges, unsigned int EdgesSize) |
Definition at line 77 of file X86LoadValueInjectionLoadHardening.cpp.
| INITIALIZE_PASS_BEGIN | ( | X86LoadValueInjectionLoadHardeningLegacy | , |
| PASS_KEY | , | ||
| "X86 LVI load hardening" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY, and PASS_KEY.
| STATISTIC | ( | NumFences | , |
| "Number of LFENCEs inserted for LVI mitigation" | ) |
| STATISTIC | ( | NumFunctionsConsidered | , |
| "Number of functions analyzed" | ) |
| STATISTIC | ( | NumGadgets | , |
| "Number of LVI gadgets detected during analysis" | ) |
|
static |
Definition at line 222 of file X86LoadValueInjectionLoadHardening.cpp.
References G, llvm::MachineFunction::getName(), and llvm::WriteGraph().
| X86 LVI load false |
Definition at line 813 of file X86LoadValueInjectionLoadHardening.cpp.
| X86 LVI load hardening |
Definition at line 813 of file X86LoadValueInjectionLoadHardening.cpp.
|
static |
Definition at line 80 of file X86LoadValueInjectionLoadHardening.cpp.
|
static |
Definition at line 76 of file X86LoadValueInjectionLoadHardening.cpp.
| PASS_KEY |
Definition at line 812 of file X86LoadValueInjectionLoadHardening.cpp.