|
LLVM 24.0.0git
|
#include "llvm/Analysis/InlineAdvisor.h"#include "AnalysisOptions.h"#include "llvm/ADT/Statistic.h"#include "llvm/ADT/StringExtras.h"#include "llvm/Analysis/AssumptionCache.h"#include "llvm/Analysis/EphemeralValuesCache.h"#include "llvm/Analysis/IR2Vec.h"#include "llvm/Analysis/InlineCost.h"#include "llvm/Analysis/OptimizationRemarkEmitter.h"#include "llvm/Analysis/ProfileSummaryInfo.h"#include "llvm/Analysis/ReplayInlineAdvisor.h"#include "llvm/Analysis/TargetLibraryInfo.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/Module.h"#include "llvm/IR/PassManager.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
| #define | DEBUG_TYPE "inline" |
Functions | |
| STATISTIC (NumCallerCallersAnalyzed, "Number of caller-callers analyzed") | |
| static std::optional< llvm::InlineCost > | getDefaultInlineAdvice (CallBase &CB, FunctionAnalysisManager &FAM, const InlineParams &Params) |
| static bool | shouldBeDeferred (Function *Caller, TargetTransformInfo &CalleeTTI, InlineCost IC, int &TotalSecondaryCost, function_ref< InlineCost(CallBase &CB)> GetInlineCost) |
| Return true if inlining of CB can block the caller from being inlined which is proved to be more beneficial. | |
| static raw_ostream & | llvm::operator<< (raw_ostream &R, const ore::NV &Arg) |
| template<class RemarkT> | |
| decltype(auto) | llvm::operator<< (RemarkT &&R, const InlineCost &IC) |
| static const char * | getLTOPhase (ThinOrFullLTOPhase LTOPhase) |
| static const char * | getInlineAdvisorContext (InlinePass IP) |
| #define DEBUG_TYPE "inline" |
Definition at line 35 of file InlineAdvisor.cpp.
|
static |
Definition at line 114 of file InlineAdvisor.cpp.
References DEBUG_TYPE, llvm::InlineParams::EnableDeferral, F, FAM, llvm::getAnalysisOptions(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCaller(), llvm::getInlineCost(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and llvm::shouldInline().
Referenced by llvm::InlineAdvisorAnalysis::Result::tryCreate().
|
inlinestatic |
Definition at line 569 of file InlineAdvisor.cpp.
References llvm::AlwaysInliner, llvm::CGSCCInliner, llvm::EarlyInliner, llvm_unreachable, llvm::MLInliner, llvm::ModuleInliner, llvm::ReplayCGSCCInliner, llvm::ReplaySampleProfileInliner, and llvm::SampleProfileInliner.
Referenced by llvm::AnnotateInlinePassName().
|
inlinestatic |
Definition at line 555 of file InlineAdvisor.cpp.
References llvm::FullLTOPostLink, llvm::FullLTOPreLink, llvm_unreachable, llvm::None, llvm::ThinLTOPostLink, and llvm::ThinLTOPreLink.
Referenced by llvm::AnnotateInlinePassName().
|
static |
Return true if inlining of CB can block the caller from being inlined which is proved to be more beneficial.
IC is the estimated inline cost associated with callsite CB. TotalSecondaryCost will be set to the estimated cost of inlining the caller if CB is suppressed for inlining.
Definition at line 255 of file InlineAdvisor.cpp.
References llvm::dyn_cast(), llvm::getAnalysisOptions(), llvm::CallBase::getCalledFunction(), llvm::InlineCost::getCost(), llvm::InlineCost::getCostDelta(), llvm::TargetTransformInfo::getInliningLastCallToStaticBonus(), and llvm::InlineCost::isAlways().
Referenced by llvm::shouldInline().
| STATISTIC | ( | NumCallerCallersAnalyzed | , |
| "Number of caller-callers analyzed" | ) |