LLVM 24.0.0git
SCCP.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "sccp"

Functions

 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)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "sccp"

Definition at line 37 of file SCCP.cpp.

Function Documentation

◆ findReturnsToZap()

◆ runIPSCCP()

Definition at line 104 of file SCCP.cpp.

References A(), llvm::SCCPSolver::addArgumentTrackedFunction(), llvm::SCCPSolver::addPredicateInfo(), llvm::SCCPSolver::addTrackedFunction(), llvm::all_of(), llvm::ArgMem, llvm::CallBase::args(), assert(), llvm::canTrackArgumentsInterprocedurally(), llvm::canTrackGlobalVariableInterprocedurally(), llvm::canTrackReturnsInterprocedurally(), llvm::cast(), llvm::changeToUnreachable(), llvm::dbgs(), DL, llvm::dyn_cast(), llvm::ErrnoMem, F, FAM, findReturnsToZap(), G, llvm::PoisonValue::get(), llvm::CallBase::getArgOperandNo(), llvm::getExpressionForConstant(), llvm::getIPOOptions(), llvm::MemoryEffectsBase< LocationEnum >::getModRef(), llvm::SCCPSolver::getMRVFunctionsTracked(), llvm::SCCPSolver::getTrackedGlobals(), llvm::SCCPSolver::getTrackedRetVals(), llvm::Attribute::getWithMemoryEffects(), I, llvm::SCCPSolver::inferArgAttributes(), llvm::SCCPSolver::inferReturnAttributes(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::isa(), llvm::SCCPSolver::isBlockExecutable(), llvm::FunctionSpecializer::isDeadFunction(), llvm::SCCPSolver::isReplaceableConstant(), llvm::SCCPSolver::isStructLatticeConstant(), LLVM_DEBUG, llvm::make_early_inc_range(), llvm::SCCPSolver::markBlockExecutable(), llvm::Other, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCCPSolver::removeNonFeasibleEdges(), llvm::CallBase::removeParamAttr(), llvm::CallBase::removeRetAttrs(), llvm::SCCPSolver::removeSSACopies(), llvm::FunctionSpecializer::run(), llvm::SCCPSolver::simplifyInstsInBlock(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::SCCPSolver::solveWhileResolvedUndefsIn(), llvm::SCCPSolver::trackValueOfArgument(), llvm::SCCPSolver::trackValueOfGlobalVariable(), llvm::SCCPSolver::tryToReplaceWithConstant(), and llvm::MemoryEffectsBase< IRMemLocation >::unknown().

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