LLVM 20.0.0git
|
#include "llvm/Transforms/IPO/ModuleInliner.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/Analysis/CtxProfAnalysis.h"
#include "llvm/Analysis/InlineAdvisor.h"
#include "llvm/Analysis/InlineCost.h"
#include "llvm/Analysis/InlineOrder.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/Analysis/ReplayInlineAdvisor.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/CallPromotionUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <cassert>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "module-inline" |
Functions | |
STATISTIC (NumInlined, "Number of functions inlined") | |
STATISTIC (NumDeleted, "Number of functions deleted because all callers found") | |
static bool | inlineHistoryIncludes (Function *F, int InlineHistoryID, const SmallVectorImpl< std::pair< Function *, int > > &InlineHistory) |
Return true if the specified inline history ID indicates an inline history that includes the specified function. | |
static bool | isKnownLibFunction (Function &F, TargetLibraryInfo &TLI) |
Variables | |
cl::opt< bool > | CtxProfPromoteAlwaysInline ("ctx-prof-promote-alwaysinline", cl::init(false), cl::Hidden, cl::desc("If using a contextual profile in this module, and an indirect " "call target is marked as alwaysinline, perform indirect call " "promotion for that target. If multiple targets for an indirect " "call site fit this description, they are all promoted.")) |
#define DEBUG_TYPE "module-inline" |
Definition at line 47 of file ModuleInliner.cpp.
|
static |
Return true if the specified inline history ID indicates an inline history that includes the specified function.
Definition at line 61 of file ModuleInliner.cpp.
|
static |
Definition at line 101 of file ModuleInliner.cpp.
References F, llvm::TargetLibraryInfo::getLibFunc(), and llvm::TargetLibraryInfo::isKnownVectorFunctionInLibrary().
STATISTIC | ( | NumDeleted | , |
"Number of functions deleted because all callers found" | |||
) |
STATISTIC | ( | NumInlined | , |
"Number of functions inlined" | |||
) |
cl::opt< bool > CtxProfPromoteAlwaysInline("ctx-prof-promote-alwaysinline", cl::init(false), cl::Hidden, cl::desc("If using a contextual profile in this module, and an indirect " "call target is marked as alwaysinline, perform indirect call " "promotion for that target. If multiple targets for an indirect " "call site fit this description, they are all promoted.")) | ( | "ctx-prof-promote-alwaysinline" | , |
cl::init(false) | , | ||
cl::Hidden | , | ||
cl::desc("If using a contextual profile in this module, and an indirect " "call target is marked as alwaysinline, perform indirect call " "promotion for that target. If multiple targets for an indirect " "call site fit this description, they are all promoted.") | |||
) |
Referenced by llvm::ModuleInlinerPass::run().