10 #ifndef LLVM_TRANSFORMS_IPO_INLINER_H 11 #define LLVM_TRANSFORMS_IPO_INLINER_H 24 class AssumptionCacheTracker;
26 class ProfileSummaryInfo;
73 bool InsertLifetime =
true;
98 : Params(
std::move(Params)) {}
101 : Params(
std::move(
Arg.Params)),
114 #endif // LLVM_TRANSFORMS_IPO_INLINER_H InlinerPass(InlinerPass &&Arg)
Thresholds to tune inline cost analysis.
bool doFinalization(CallGraph &CG) override
Remove now-dead linkonce functions at the end of processing to avoid breaking the SCC traversal...
This class represents lattice values for constants.
virtual InlineCost getInlineCost(CallSite CS)=0
This method must be implemented by the subclass to determine the cost of inlining the specified call ...
Analysis providing profile information.
Implements a lazy call graph analysis and related passes for the new pass manager.
An immutable pass that tracks lazily created AssumptionCache objects.
Calculate and dump ThinLTO specific inliner stats.
Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager...
Represents the cost of inlining a function.
bool runOnSCC(CallGraphSCC &SCC) override
Main run interface method, this implements the interface required by the Pass class.
This class contains all of the helper code which is used to perform the inlining operations that do n...
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
A CRTP mix-in to automatically provide informational APIs needed for passes.
A lazily constructed view of the call graph of a module.
Analysis containing CSE Info
void getAnalysisUsage(AnalysisUsage &Info) const override
For this class, we declare that we require and preserve the call graph.
A set of analyses that are preserved following a run of a transformation pass.
bool inlineCalls(CallGraphSCC &SCC)
This function performs the main work of the pass.
Represent the analysis usage information of a pass.
The inliner pass for the new pass manager.
bool doInitialization(CallGraph &CG) override
doInitialization - This method is called before the SCC's of the program has been processed...
ImportedFunctionsInliningStatistics ImportedFunctionsStats
InlineParams getInlineParams()
Generate the parameters to tune the inline cost analysis based only on the commandline options...
AssumptionCacheTracker * ACT
bool removeDeadFunctions(CallGraph &CG, bool AlwaysInlineOnly=false)
Remove dead functions.
InlinerPass(InlineParams Params=getInlineParams())
amdgpu Simplify well known AMD library false Value Value * Arg
The basic data container for the call graph of a Module of IR.
LegacyInlinerBase(char &ID)
This header provides classes for managing passes over SCCs of the call graph.
An SCC of the call graph.
CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.