LLVM 17.0.0git
|
#include "llvm/Transforms/IPO/FunctionSpecialization.h"
Public Member Functions | |
FunctionSpecializer (SCCPSolver &Solver, Module &M, FunctionAnalysisManager *FAM, std::function< const TargetLibraryInfo &(Function &)> GetTLI, std::function< TargetTransformInfo &(Function &)> GetTTI, std::function< AssumptionCache &(Function &)> GetAC) | |
~FunctionSpecializer () | |
bool | isClonedFunction (Function *F) |
bool | run () |
Attempt to specialize functions in the module to enable constant propagation across function boundaries. | |
Definition at line 115 of file FunctionSpecialization.h.
|
inline |
Definition at line 135 of file FunctionSpecialization.h.
References FAM.
FunctionSpecializer::~FunctionSpecializer | ( | ) |
Definition at line 253 of file FunctionSpecialization.cpp.
References llvm::dbgs(), and LLVM_DEBUG.
bool FunctionSpecializer::run | ( | ) |
Attempt to specialize functions in the module to enable constant propagation across function boundaries.
Definition at line 267 of file FunctionSpecialization.cpp.
References Arg, llvm::SpecSig::Args, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::Spec::CallSites, llvm::Spec::Clone, Cost, llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::Spec::F, F, llvm::Spec::Gain, llvm::Value::getName(), I, LLVM_DEBUG, MaxClones, N, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Spec::Sig, llvm::SmallVectorBase< Size_T >::size(), and llvm::SCCPSolver::solveWhileResolvedUndefsIn().
Referenced by runIPSCCP().