LLVM  4.0.0
Namespaces | Macros | Functions | Variables
SpeculativeExecution.cpp File Reference
#include "llvm/Transforms/Scalar/SpeculativeExecution.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.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
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "speculative-execution"
 

Functions

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

Variables

static cl::opt< unsignedSpecExecMaxSpeculationCost ("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< unsignedSpecExecMaxNotHoisted ("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< boolSpecExecOnlyIfDivergentTarget ("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

#define DEBUG_TYPE   "speculative-execution"

Definition at line 76 of file SpeculativeExecution.cpp.

Function Documentation

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

Variable Documentation

speculative execution

Definition at line 134 of file SpeculativeExecution.cpp.

speculative Speculatively execute false

Definition at line 134 of file SpeculativeExecution.cpp.

speculative Speculatively execute instructions

Definition at line 134 of file SpeculativeExecution.cpp.

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<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<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