LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions
InlineAdvisor.h File Reference
#include "llvm/Analysis/InlineCost.h"
#include "llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/PassManager.h"
#include <memory>
#include <unordered_set>
Include dependency graph for InlineAdvisor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


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::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


 This is an optimization pass for GlobalISel generic memory operations.


enum  llvm::InliningAdvisorMode : int { llvm::InliningAdvisorMode::Default, llvm::InliningAdvisorMode::Release, llvm::InliningAdvisorMode::Development }
 There are 3 scenarios we can use the InlineAdvisor: More...


Optional< InlineCostllvm::shouldInline (CallBase &CB, 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. More...
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. More...
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). More...
void llvm::addLocationToRemarks (OptimizationRemark &Remark, DebugLoc DLoc)
 Add location info to ORE message. More...
void llvm::setInlineRemark (CallBase &CB, StringRef Message)
 Set the inline-remark attribute. More...
std::string llvm::inlineCostStr (const InlineCost &IC)
 Utility for extracting the inline cost message to a string. More...