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, std::function< DominatorTree &(Function &)> GetDT, std::function< BlockFrequencyInfo &(Function &)> GetBFI, bool IsFuncSpecEnabled) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "sccp" |
◆ findReturnsToZap()
Definition at line 50 of file SCCP.cpp.
References llvm::all_of(), assert(), llvm::dbgs(), F, llvm::SCCPSolver::getLatticeValueFor(), if(), II, llvm::SCCPSolver::isArgumentTrackedFunction(), llvm::SCCPSolver::isOverdefined(), LLVM_DEBUG, and llvm::SCCPSolver::mustPreserveReturn().
Referenced by runIPSCCP().
◆ runIPSCCP()
Definition at line 110 of file SCCP.cpp.
References A, llvm::SCCPSolver::addArgumentTrackedFunction(), llvm::SCCPSolver::addPredicateInfo(), llvm::SCCPSolver::addTrackedFunction(), llvm::all_of(), llvm::CallBase::args(), assert(), llvm::canTrackArgumentsInterprocedurally(), llvm::canTrackGlobalVariableInterprocedurally(), llvm::canTrackReturnsInterprocedurally(), llvm::changeToUnreachable(), llvm::dbgs(), DL, F, FAM, findReturnsToZap(), FuncSpecMaxIters, G, llvm::PoisonValue::get(), llvm::CallBase::getArgOperandNo(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::GlobalVariable::getDebugInfo(), llvm::getExpressionForConstant(), llvm::GlobalVariable::getInitializer(), llvm::MemoryEffectsBase< LocationEnum >::getModRef(), llvm::SCCPSolver::getMRVFunctionsTracked(), llvm::Value::getName(), llvm::SCCPSolver::getPredicateInfoFor(), llvm::SCCPSolver::getTrackedGlobals(), llvm::SCCPSolver::getTrackedRetVals(), llvm::AttributeFuncs::getUBImplyingAttributes(), llvm::GlobalValue::getValueType(), llvm::Attribute::getWithMemoryEffects(), I, II, llvm::SCCPSolver::inferArgAttributes(), llvm::SCCPSolver::inferReturnAttributes(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::SCCPSolver::isBlockExecutable(), llvm::SCCPSolver::isConstant(), llvm::SCCPSolver::isOverdefined(), llvm::SCCPSolver::isStructLatticeConstant(), LLVM_DEBUG, llvm::make_early_inc_range(), llvm::SCCPSolver::markBlockExecutable(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCCPSolver::removeNonFeasibleEdges(), llvm::CallBase::removeParamAttr(), llvm::CallBase::removeRetAttrs(), llvm::FunctionSpecializer::run(), llvm::SCCPSolver::simplifyInstsInBlock(), llvm::SmallVectorBase< Size_T >::size(), llvm::SCCPSolver::solveWhileResolvedUndefsIn(), llvm::SCCPSolver::trackValueOfArgument(), llvm::SCCPSolver::trackValueOfGlobalVariable(), llvm::SCCPSolver::tryToReplaceWithConstant(), llvm::MemoryEffectsBase< LocationEnum >::unknown(), and llvm::Value::users().
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(10), cl::Hidden, cl::desc( "The maximum number of iterations function specialization is run")) |
( |
"funcspec-max-iters" |
, |
|
|
cl::init(10) |
, |
|
|
cl::Hidden |
, |
|
|
cl::desc( "The maximum number of iterations function specialization is run") |
|
|
) |
| |
|
static |