LLVM 24.0.0git
X86LoadValueInjectionLoadHardening.cpp File Reference

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

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   PASS_KEY

Definition at line 68 of file X86LoadValueInjectionLoadHardening.cpp.

◆ PASS_KEY

#define PASS_KEY   "x86-lvi-load"

Definition at line 67 of file X86LoadValueInjectionLoadHardening.cpp.

Typedef Documentation

◆ OptimizeCutT

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.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( X86LoadValueInjectionLoadHardeningLegacy ,
PASS_KEY ,
"X86 LVI load hardening" ,
false ,
false  )

◆ STATISTIC() [1/4]

STATISTIC ( NumFences ,
"Number of LFENCEs inserted for LVI mitigation"  )

◆ STATISTIC() [2/4]

STATISTIC ( NumFunctionsConsidered ,
"Number of functions analyzed"  )

◆ STATISTIC() [3/4]

STATISTIC ( NumFunctionsMitigated ,
"Number of functions for which mitigations " "were deployed"  )

◆ STATISTIC() [4/4]

STATISTIC ( NumGadgets ,
"Number of LVI gadgets detected during analysis"  )

◆ writeGadgetGraph()

void writeGadgetGraph ( raw_ostream & OS,
MachineFunction & MF,
MachineGadgetGraph * G )
static

Variable Documentation

◆ false

X86 LVI load false

Definition at line 813 of file X86LoadValueInjectionLoadHardening.cpp.

◆ hardening

X86 LVI load hardening

Definition at line 813 of file X86LoadValueInjectionLoadHardening.cpp.

◆ OptimizeCut

OptimizeCutT OptimizeCut = nullptr
static

Definition at line 80 of file X86LoadValueInjectionLoadHardening.cpp.

◆ OptimizeDL

llvm::sys::DynamicLibrary OptimizeDL
static

Definition at line 76 of file X86LoadValueInjectionLoadHardening.cpp.

◆ PASS_KEY

PASS_KEY

Definition at line 812 of file X86LoadValueInjectionLoadHardening.cpp.