LLVM 19.0.0git
Macros | Functions | Variables
DFAJumpThreading.cpp File Reference
#include "llvm/Transforms/Scalar/DFAJumpThreading.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/CodeMetrics.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/SSAUpdaterBulk.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <algorithm>
#include <deque>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "dfa-jump-threading"
 

Functions

 STATISTIC (NumTransforms, "Number of transformations done")
 
 STATISTIC (NumCloned, "Number of blocks cloned")
 
 STATISTIC (NumPaths, "Number of individual paths threaded")
 

Variables

static cl::opt< boolClViewCfgBefore ("dfa-jump-view-cfg-before", cl::desc("View the CFG before DFA Jump Threading"), cl::Hidden, cl::init(false))
 
static cl::opt< boolEarlyExitHeuristic ("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< unsignedMaxPathLength ("dfa-max-path-length", cl::desc("Max number of blocks searched to find a threading path"), cl::Hidden, cl::init(20))
 
static cl::opt< unsignedMaxNumPaths ("dfa-max-num-paths", cl::desc("Max number of paths enumerated around a switch"), cl::Hidden, cl::init(200))
 
static cl::opt< unsignedCostThreshold ("dfa-cost-threshold", cl::desc("Maximum cost accepted for the transformation"), cl::Hidden, cl::init(50))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "dfa-jump-threading"

Definition at line 88 of file DFAJumpThreading.cpp.

Function Documentation

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

Variable Documentation

◆ ClViewCfgBefore

cl::opt< bool > ClViewCfgBefore("dfa-jump-view-cfg-before", cl::desc("View the CFG before DFA Jump Threading"), cl::Hidden, cl::init(false)) ( "dfa-jump-view-cfg-before"  ,
cl::desc("View the CFG before DFA Jump Threading")  ,
cl::Hidden  ,
cl::init(false)   
)
static

◆ CostThreshold

cl::opt< unsigned > CostThreshold("dfa-cost-threshold", cl::desc("Maximum cost accepted for the transformation"), cl::Hidden, cl::init(50)) ( "dfa-cost-threshold"  ,
cl::desc("Maximum cost accepted for the transformation")  ,
cl::Hidden  ,
cl::init(50)   
)
static

◆ EarlyExitHeuristic

cl::opt< bool > EarlyExitHeuristic("dfa-early-exit-heuristic", cl::desc("Exit early if an unpredictable value come from the same loop"), cl::Hidden, cl::init(true)) ( "dfa-early-exit-heuristic"  ,
cl::desc("Exit early if an unpredictable value come from the same loop")  ,
cl::Hidden  ,
cl::init(true  
)
static

◆ MaxNumPaths

cl::opt< unsigned > MaxNumPaths("dfa-max-num-paths", cl::desc("Max number of paths enumerated around a switch"), cl::Hidden, cl::init(200)) ( "dfa-max-num-paths"  ,
cl::desc("Max number of paths enumerated around a switch")  ,
cl::Hidden  ,
cl::init(200)   
)
static

◆ MaxPathLength

cl::opt< unsigned > MaxPathLength("dfa-max-path-length", cl::desc("Max number of blocks searched to find a threading path"), cl::Hidden, cl::init(20)) ( "dfa-max-path-length"  ,
cl::desc("Max number of blocks searched to find a threading path")  ,
cl::Hidden  ,
cl::init(20)   
)
static