LLVM  13.0.0git
Namespaces | Macros | Functions | Variables
SpeculativeExecution.cpp File Reference
#include "llvm/Transforms/Scalar/SpeculativeExecution.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
Include dependency graph for SpeculativeExecution.cpp:

Go to the source code of this file.

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 

Macros

#define DEBUG_TYPE   "speculative-execution"
 

Functions

 INITIALIZE_PASS_BEGIN (SpeculativeExecutionLegacyPass, "speculative-execution", "Speculatively execute instructions", false, false) INITIALIZE_PASS_END(SpeculativeExecutionLegacyPass
 
static InstructionCost llvm::ComputeSpeculationCost (const Instruction *I, const TargetTransformInfo &TTI)
 
FunctionPassllvm::createSpeculativeExecutionPass ()
 
FunctionPassllvm::createSpeculativeExecutionIfHasBranchDivergencePass ()
 

Variables

static cl::opt< unsigned > SpecExecMaxSpeculationCost ("spec-exec-max-speculation-cost", cl::init(7), cl::Hidden, cl::desc("Speculative execution is not applied to basic blocks where " "the cost of the instructions to speculatively execute " "exceeds this limit."))
 
static cl::opt< unsigned > SpecExecMaxNotHoisted ("spec-exec-max-not-hoisted", cl::init(5), cl::Hidden, cl::desc("Speculative execution is not applied to basic blocks where the " "number of instructions that would not be speculatively executed " "exceeds this limit."))
 
static cl::opt< bool > SpecExecOnlyIfDivergentTarget ("spec-exec-only-if-divergent-target", cl::init(false), cl::Hidden, cl::desc("Speculative execution is applied only to targets with divergent " "branches, even if the pass was configured to apply only to all " "targets."))
 
speculative execution
 
speculative Speculatively execute instructions
 
speculative Speculatively execute false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "speculative-execution"

Definition at line 77 of file SpeculativeExecution.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( SpeculativeExecutionLegacyPass  ,
"speculative-execution ,
"Speculatively execute instructions ,
false  ,
false   
)

Variable Documentation

◆ execution

speculative execution

Definition at line 135 of file SpeculativeExecution.cpp.

◆ false

speculative Speculatively execute false

Definition at line 136 of file SpeculativeExecution.cpp.

◆ instructions

speculative Speculatively execute instructions

Definition at line 136 of file SpeculativeExecution.cpp.

◆ SpecExecMaxNotHoisted

cl::opt<unsigned> SpecExecMaxNotHoisted("spec-exec-max-not-hoisted", cl::init(5), cl::Hidden, cl::desc("Speculative execution is not applied to basic blocks where the " "number of instructions that would not be speculatively executed " "exceeds this limit."))
static

◆ SpecExecMaxSpeculationCost

cl::opt<unsigned> SpecExecMaxSpeculationCost("spec-exec-max-speculation-cost", cl::init(7), cl::Hidden, cl::desc("Speculative execution is not applied to basic blocks where " "the cost of the instructions to speculatively execute " "exceeds this limit."))
static

◆ SpecExecOnlyIfDivergentTarget

cl::opt<bool> SpecExecOnlyIfDivergentTarget("spec-exec-only-if-divergent-target", cl::init(false), cl::Hidden, cl::desc("Speculative execution is applied only to targets with divergent " "branches, even if the pass was configured to apply only to all " "targets."))
static