LLVM 20.0.0git
|
#include "llvm/Analysis/CGSCCPassManager.h"
#include "llvm/Analysis/InlineCost.h"
#include "llvm/Analysis/LazyCallGraph.h"
#include "llvm/IR/PassManager.h"
#include <memory>
Go to the source code of this file.
Classes | |
struct | llvm::InlineContext |
Provides context on when an inline advisor is constructed in the pipeline (e.g., link phase, inline driver). More... | |
class | llvm::InlineAdvice |
Capture state between an inlining decision having had been made, and its impact being observable. More... | |
class | llvm::DefaultInlineAdvice |
class | llvm::InlineAdvisor |
Interface for deciding whether to inline a call site or not. More... | |
class | llvm::DefaultInlineAdvisor |
The default (manual heuristics) implementation of the InlineAdvisor. More... | |
class | llvm::PluginInlineAdvisorAnalysis |
Used for dynamically registering InlineAdvisors as plugins. More... | |
struct | llvm::PluginInlineAdvisorAnalysis::Result |
class | llvm::InlineAdvisorAnalysis |
The InlineAdvisorAnalysis is a module pass because the InlineAdvisor needs to capture state right before inlining commences over a module. More... | |
struct | llvm::InlineAdvisorAnalysis::Result |
class | llvm::InlineAdvisorAnalysisPrinterPass |
Printer pass for the InlineAdvisorAnalysis results. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Enumerations | |
enum class | llvm::InliningAdvisorMode : int { llvm::Default , llvm::Release , llvm::Development } |
There are 4 scenarios we can use the InlineAdvisor: More... | |
enum class | llvm::InlinePass : int { llvm::AlwaysInliner , llvm::CGSCCInliner , llvm::EarlyInliner , llvm::ModuleInliner , llvm::MLInliner , llvm::ReplayCGSCCInliner , llvm::ReplaySampleProfileInliner , llvm::SampleProfileInliner } |
Functions | |
std::string | llvm::AnnotateInlinePassName (InlineContext IC) |
std::unique_ptr< InlineAdvisor > | llvm::getReleaseModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice) |
std::unique_ptr< InlineAdvisor > | llvm::getDevelopmentModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice) |
std::optional< InlineCost > | llvm::shouldInline (CallBase &CB, TargetTransformInfo &CalleeTTI, function_ref< InlineCost(CallBase &CB)> GetInlineCost, OptimizationRemarkEmitter &ORE, bool EnableDeferral=true) |
Return the cost only if the inliner should attempt to inline at the given CallSite. | |
void | llvm::emitInlinedInto (OptimizationRemarkEmitter &ORE, DebugLoc DLoc, const BasicBlock *Block, const Function &Callee, const Function &Caller, bool IsMandatory, function_ref< void(OptimizationRemark &)> ExtraContext={}, const char *PassName=nullptr) |
Emit ORE message. | |
void | llvm::emitInlinedIntoBasedOnCost (OptimizationRemarkEmitter &ORE, DebugLoc DLoc, const BasicBlock *Block, const Function &Callee, const Function &Caller, const InlineCost &IC, bool ForProfileContext=false, const char *PassName=nullptr) |
Emit ORE message based in cost (default heuristic). | |
void | llvm::addLocationToRemarks (OptimizationRemark &Remark, DebugLoc DLoc) |
Add location info to ORE message. | |
void | llvm::setInlineRemark (CallBase &CB, StringRef Message) |
Set the inline-remark attribute. | |
std::string | llvm::inlineCostStr (const InlineCost &IC) |
Utility for extracting the inline cost message to a string. | |