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

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 "dfa-jump-threading"
Typedefs
typedef std::deque< BasicBlock * > PathType
typedef std::vector< PathType > PathsType
typedef SmallPtrSet< const BasicBlock *, 8 > VisitedBlocks
typedef std::vector< ClonedBlock > CloneList
typedef DenseMap< BasicBlock *, CloneList > DuplicateBlockMap
typedef MapVector< Instruction *, std::vector< Instruction * > > DefMap
Functions
STATISTIC (NumTransforms, "Number of transformations done")
STATISTIC (NumCloned, "Number of blocks cloned")
STATISTIC (NumPaths, "Number of individual paths threaded")
raw_ostream & operator<< (raw_ostream &OS, const PathType &Path)
Variables
static cl::opt< bool > llvm::ClViewCfgBefore ("dfa-jump-view-cfg-before", cl::desc("View the CFG before DFA Jump Threading"), cl::Hidden, cl::init(false))
static cl::opt< bool > llvm::EarlyExitHeuristic ("dfa-early-exit-heuristic", cl::desc("Exit early if an unpredictable value come from the same loop"), cl::Hidden, cl::init(true))
static cl::opt< unsigned > llvm::MaxPathLength ("dfa-max-path-length", cl::desc("Max number of blocks searched to find a threading path"), cl::Hidden, cl::init(20))
static cl::opt< unsigned > llvm::MaxNumVisitiedPaths ("dfa-max-num-visited-paths", cl::desc("Max number of blocks visited while enumerating paths around a switch"), cl::Hidden, cl::init(2500))
static cl::opt< unsigned > llvm::MaxNumPaths ("dfa-max-num-paths", cl::desc("Max number of paths enumerated around a switch"), cl::Hidden, cl::init(200))
static cl::opt< unsigned > llvm::CostThreshold ("dfa-cost-threshold", cl::desc("Maximum cost accepted for the transformation"), cl::Hidden, cl::init(50))
static cl::opt< double > llvm::MaxClonedRate ("dfa-max-cloned-rate", cl::desc("Maximum cloned instructions rate accepted for the transformation"), cl::Hidden, cl::init(7.5))
static cl::opt< unsigned > llvm::MaxOuterUseBlocks ("dfa-max-out-use-blocks", cl::desc("Maximum unduplicated blocks with outer uses " "accepted for the transformation"), cl::Hidden, cl::init(40))

DEBUG_TYPE

#define DEBUG_TYPE "dfa-jump-threading"

CloneList

typedef std::vector CloneList

DefMap

DuplicateBlockMap

PathsType

typedef std::vector<PathType> PathsType

PathType

VisitedBlocks

operator<<()

STATISTIC() [1/3]

STATISTIC ( NumCloned ,
"Number of blocks cloned" )

STATISTIC() [2/3]

STATISTIC ( NumPaths ,
"Number of individual paths threaded" )

STATISTIC() [3/3]

STATISTIC ( NumTransforms ,
"Number of transformations done" )