|
LLVM 24.0.0git
|
#include "llvm/Transforms/IPO/FunctionSpecialization.h"
Public Member Functions | |
| LLVM_ABI | 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 235 of file FunctionSpecialization.h.
| FunctionSpecializer::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 ) |
Definition at line 577 of file FunctionSpecialization.cpp.
References llvm::getIPOOptions().
| FunctionSpecializer::~FunctionSpecializer | ( | ) |
Definition at line 586 of file FunctionSpecialization.cpp.
References llvm::dbgs(), and LLVM_DEBUG.
|
inline |
Definition at line 270 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 612 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::End, llvm::SmallVectorTemplateCommon< T, typename >::end(), F, llvm::Spec::F, llvm::ArgInfo::Formal, llvm::Function::getEntryCount(), llvm::Value::getName(), llvm::Value::getNameOrAsOperand(), I, llvm::SCCPSolver::isOverdefined(), LLVM_DEBUG, Metrics, N, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Spec::Score, llvm::Function::setEntryCount(), llvm::Spec::Sig, and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by runIPSCCP().