LLVM 20.0.0git
|
#include "llvm/Transforms/IPO/FunctionSpecialization.h"
Public Member Functions | |
FunctionSpecializer (SCCPSolver &Solver, Module &M, FunctionAnalysisManager *FAM, std::function< BlockFrequencyInfo &(Function &)> GetBFI, std::function< const TargetLibraryInfo &(Function &)> GetTLI, std::function< TargetTransformInfo &(Function &)> GetTTI, std::function< AssumptionCache &(Function &)> GetAC) | |
~FunctionSpecializer () | |
bool | run () |
Attempt to specialize functions in the module to enable constant propagation across function boundaries. | |
InstCostVisitor | getInstCostVisitorFor (Function *F) |
Definition at line 232 of file FunctionSpecialization.h.
|
inline |
Definition at line 255 of file FunctionSpecialization.h.
References FAM.
FunctionSpecializer::~FunctionSpecializer | ( | ) |
Definition at line 649 of file FunctionSpecialization.cpp.
References llvm::dbgs(), llvm::Module::getName(), and LLVM_DEBUG.
|
inline |
Definition at line 268 of file FunctionSpecialization.h.
References F.
bool FunctionSpecializer::run | ( | ) |
Attempt to specialize functions in the module to enable constant propagation across function boundaries.
Definition at line 675 of file FunctionSpecialization.cpp.
References llvm::ArgInfo::Actual, llvm::SpecSig::Args, assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::Spec::CallSites, llvm::Spec::Clone, llvm::Spec::CodeSize, llvm::CodeMetrics::collectEphemeralValues(), llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::end(), End, llvm::Spec::F, F, ForceSpecialization, llvm::ArgInfo::Formal, llvm::Value::getName(), llvm::Value::getNameOrAsOperand(), llvm::SCCPSolver::getTrackedRetVals(), I, llvm::SCCPSolver::isOverdefined(), llvm::SCCPSolver::isStructLatticeConstant(), LLVM_DEBUG, MaxClones, Metrics, MinFunctionSize, N, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCCPSolver::resetLatticeValueFor(), llvm::Spec::Score, llvm::Spec::Sig, llvm::SmallVectorBase< Size_T >::size(), llvm::SCCPSolver::solveWhileResolvedUndefs(), llvm::SCCPSolver::solveWhileResolvedUndefsIn(), and SpecializeLiteralConstant.
Referenced by runIPSCCP().