LLVM: lib/Transforms/Scalar/SpeculativeExecution.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "speculative-execution"
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

DEBUG_TYPE

#define DEBUG_TYPE "speculative-execution"

ComputeSpeculationCost()

INITIALIZE_PASS_BEGIN()

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

execution

false

speculative Speculatively execute false

instructions

speculative Speculatively execute instructions

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.")) ( "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.")) ( "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.")) ( "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