LLVM 22.0.0git
SpeculativeExecution.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

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)
LLVM_ABI FunctionPassllvm::createSpeculativeExecutionPass ()
LLVM_ABI 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

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