|
LLVM 22.0.0git
|
#include "llvm/Transforms/Scalar/DFAJumpThreading.h"#include "llvm/ADT/APInt.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/Statistic.h"#include "llvm/ADT/StringExtras.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 <deque>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)) |
| #define DEBUG_TYPE "dfa-jump-threading" |
Definition at line 87 of file DFAJumpThreading.cpp.
| typedef std::vector<ClonedBlock> CloneList |
Definition at line 376 of file DFAJumpThreading.cpp.
| typedef MapVector<Instruction *, std::vector<Instruction *> > DefMap |
Definition at line 385 of file DFAJumpThreading.cpp.
| typedef DenseMap<BasicBlock *, CloneList> DuplicateBlockMap |
Definition at line 381 of file DFAJumpThreading.cpp.
Definition at line 374 of file DFAJumpThreading.cpp.
| typedef std::deque<BasicBlock *> PathType |
Definition at line 373 of file DFAJumpThreading.cpp.
| typedef SmallPtrSet<const BasicBlock *, 8> VisitedBlocks |
Definition at line 375 of file DFAJumpThreading.cpp.
|
inline |
Definition at line 387 of file DFAJumpThreading.cpp.
References llvm::Value::getNameOrAsOperand(), llvm::join(), and llvm::map_range().
| STATISTIC | ( | NumCloned | , |
| "Number of blocks cloned" | ) |
| STATISTIC | ( | NumPaths | , |
| "Number of individual paths threaded" | ) |
| STATISTIC | ( | NumTransforms | , |
| "Number of transformations done" | ) |