LLVM: llvm::FunctionSpecializer Class Reference (original) (raw)

#include "[llvm/Transforms/IPO/FunctionSpecialization.h](FunctionSpecialization%5F8h%5Fsource.html)"

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.

~FunctionSpecializer()

FunctionSpecializer::~FunctionSpecializer ( )

getInstCostVisitorFor()

isDeadFunction()

bool llvm::FunctionSpecializer::isDeadFunction ( Function * F) inline

run()

bool FunctionSpecializer::run ( )

Attempt to specialize functions in the module to enable constant propagation across function boundaries.

Returns

true if at least one function is specialized.

Definition at line 675 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, llvm::ForceSpecialization, llvm::ArgInfo::Formal, llvm::Function::getEntryCount(), llvm::Value::getName(), llvm::Value::getNameOrAsOperand(), I, llvm::SCCPSolver::isOverdefined(), LLVM_DEBUG, llvm::MaxClones, Metrics, llvm::MinFunctionSize, N, llvm::ProfcheckDisableMetadataFixes, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Spec::Score, llvm::Function::setEntryCount(), llvm::Spec::Sig, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::SpecializeLiteralConstant.

Referenced by runIPSCCP().


The documentation for this class was generated from the following files: