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:
- include/llvm/Transforms/IPO/FunctionSpecialization.h
- lib/Transforms/IPO/FunctionSpecialization.cpp