Go to the source code of this file.
|
| STATISTIC (NumInstRemoved, "Number of instructions removed") |
|
| STATISTIC (NumArgsElimed,"Number of arguments constant propagated") |
|
| STATISTIC (NumGlobalConst, "Number of globals found to be constant") |
|
| STATISTIC (NumDeadBlocks, "Number of basic blocks unreachable") |
|
| STATISTIC (NumInstReplaced, "Number of instructions replaced with (simpler) instruction") |
|
static void | findReturnsToZap (Function &F, SmallVector< ReturnInst *, 8 > &ReturnsToZap, SCCPSolver &Solver) |
|
static bool | runIPSCCP (Module &M, const DataLayout &DL, FunctionAnalysisManager *FAM, std::function< const TargetLibraryInfo &(Function &)> GetTLI, std::function< TargetTransformInfo &(Function &)> GetTTI, std::function< AssumptionCache &(Function &)> GetAC, function_ref< AnalysisResultsForFn(Function &)> getAnalysis, bool IsFuncSpecEnabled) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "sccp" |
◆ findReturnsToZap()
◆ runIPSCCP()
Definition at line 109 of file SCCP.cpp.
References A, llvm::SCCPSolver::addAnalysis(), llvm::SCCPSolver::addArgumentTrackedFunction(), llvm::SCCPSolver::addTrackedFunction(), llvm::all_of(), Arg, llvm::MemoryEffects::ArgMem, llvm::CallBase::args(), assert(), llvm::canTrackArgumentsInterprocedurally(), llvm::canTrackGlobalVariableInterprocedurally(), llvm::canTrackReturnsInterprocedurally(), llvm::changeToUnreachable(), Context, llvm::dbgs(), llvm::DomTreeUpdater::deleteBB(), DL, F, FAM, findReturnsToZap(), FuncSpecMaxIters, G, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::UndefValue::get(), llvm::ConstantInt::get(), llvm::CallBase::getArgOperandNo(), llvm::ValueLatticeElement::getConstantRange(), llvm::SCCPSolver::getDTU(), llvm::MemoryEffects::getModRef(), llvm::SCCPSolver::getMRVFunctionsTracked(), llvm::Value::getName(), llvm::SCCPSolver::getPredicateInfoFor(), llvm::SCCPSolver::getTrackedGlobals(), llvm::SCCPSolver::getTrackedRetVals(), llvm::AttributeFuncs::getUBImplyingAttributes(), llvm::Attribute::getWithMemoryEffects(), I, llvm::SetVector< T, Vector, Set >::insert(), llvm::SCCPSolver::isBlockExecutable(), llvm::FunctionSpecializer::isClonedFunction(), llvm::SCCPSolver::isConstant(), llvm::ValueLatticeElement::isConstantRange(), llvm::ValueLatticeElement::isConstantRangeIncludingUndef(), llvm::SCCPSolver::isOverdefined(), llvm::ConstantRange::isSingleElement(), llvm::SCCPSolver::isStructLatticeConstant(), llvm::ValueLatticeElement::isUnknownOrUndef(), LLVM_DEBUG, llvm::make_early_inc_range(), llvm::SCCPSolver::markBlockExecutable(), llvm::SCCPSolver::markOverdefined(), llvm::MemoryEffects::Other, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCCPSolver::removeNonFeasibleEdges(), llvm::CallBase::removeParamAttr(), llvm::CallBase::removeRetAttrs(), llvm::FunctionSpecializer::run(), SI, llvm::SCCPSolver::simplifyInstsInBlock(), llvm::SCCPSolver::solveWhileResolvedUndefsIn(), llvm::SCCPSolver::trackValueOfGlobalVariable(), llvm::SCCPSolver::tryToReplaceWithConstant(), llvm::MemoryEffects::unknown(), llvm::Value::use_empty(), and llvm::Value::user_back().
Referenced by llvm::IPSCCPPass::run().
◆ STATISTIC() [1/5]
STATISTIC |
( |
NumArgsElimed |
, |
|
|
"Number of arguments constant propagated" |
|
|
) |
| |
◆ STATISTIC() [2/5]
STATISTIC |
( |
NumDeadBlocks |
, |
|
|
"Number of basic blocks unreachable" |
|
|
) |
| |
◆ STATISTIC() [3/5]
STATISTIC |
( |
NumGlobalConst |
, |
|
|
"Number of globals found to be constant" |
|
|
) |
| |
◆ STATISTIC() [4/5]
STATISTIC |
( |
NumInstRemoved |
, |
|
|
"Number of instructions removed" |
|
|
) |
| |
◆ STATISTIC() [5/5]
STATISTIC |
( |
NumInstReplaced |
, |
|
|
"Number of instructions replaced with (simpler) instruction" |
|
|
) |
| |
◆ FuncSpecMaxIters
cl::opt< unsigned > FuncSpecMaxIters("funcspec-max-iters", cl::init(1), cl::Hidden, cl::desc( "The maximum number of iterations function specialization is run")) |
( |
"funcspec-max-iters" |
, |
|
|
cl::init(1) |
, |
|
|
cl::Hidden |
, |
|
|
cl::desc( "The maximum number of iterations function specialization is run") |
|
|
) |
| |
|
static |