LLVM 22.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) | |
LLVM_ABI | ~FunctionSpecializer () |
LLVM_ABI bool | run () |
Attempt to specialize functions in the module to enable constant propagation across function boundaries. | |
InstCostVisitor | getInstCostVisitorFor (Function *F) |
bool | isDeadFunction (Function *F) |
Definition at line 232 of file FunctionSpecialization.h.
|
inline |
Definition at line 255 of file FunctionSpecialization.h.
FunctionSpecializer::~FunctionSpecializer | ( | ) |
Definition at line 644 of file FunctionSpecialization.cpp.
References llvm::dbgs(), 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 670 of file FunctionSpecialization.cpp.
References llvm::ArgInfo::Actual, llvm::SpecSig::Args, assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), Call, llvm::Spec::CallSites, llvm::cast(), llvm::Spec::Clone, llvm::Spec::CodeSize, llvm::CodeMetrics::collectEphemeralValues(), llvm::Count, llvm::dbgs(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::end(), F, llvm::Spec::F, ForceSpecialization, llvm::ArgInfo::Formal, llvm::Function::getEntryCount(), llvm::Value::getName(), llvm::Value::getNameOrAsOperand(), I, llvm::SCCPSolver::isOverdefined(), LLVM_DEBUG, MaxClones, Metrics, MinFunctionSize, N, ProfcheckDisableMetadataFixes, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Spec::Score, llvm::Function::setEntryCount(), llvm::Spec::Sig, llvm::SmallVectorTemplateCommon< T, typename >::size(), and SpecializeLiteralConstant.
Referenced by runIPSCCP().