|
LLVM
8.0.1
|
#include "llvm/Analysis/InlineCost.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SetVector.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/AssumptionCache.h"#include "llvm/Analysis/BlockFrequencyInfo.h"#include "llvm/Analysis/CodeMetrics.h"#include "llvm/Analysis/ConstantFolding.h"#include "llvm/Analysis/CFG.h"#include "llvm/Analysis/InstructionSimplify.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/Analysis/ProfileSummaryInfo.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/Config/llvm-config.h"#include "llvm/IR/CallSite.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/GetElementPtrTypeIterator.h"#include "llvm/IR/GlobalAlias.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Operator.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "inline-cost" |
| #define | DEBUG_PRINT_STAT(x) dbgs() << " " #x ": " << x << "\n" |
Functions | |
| STATISTIC (NumCallsAnalyzed, "Number of call sites analyzed") | |
| static bool | functionsHaveCompatibleAttributes (Function *Caller, Function *Callee, TargetTransformInfo &TTI) |
| Test that there are no attribute conflicts between Caller and Callee that prevent inlining. More... | |
| static int | computeThresholdFromOptLevels (unsigned OptLevel, unsigned SizeOptLevel) |
Variables | |
| static cl::opt< int > | InlineThreshold ("inline-threshold", cl::Hidden, cl::init(225), cl::ZeroOrMore, cl::desc("Control the amount of inlining to perform (default = 225)")) |
| static cl::opt< int > | HintThreshold ("inlinehint-threshold", cl::Hidden, cl::init(325), cl::desc("Threshold for inlining functions with inline hint")) |
| static cl::opt< int > | ColdCallSiteThreshold ("inline-cold-callsite-threshold", cl::Hidden, cl::init(45), cl::desc("Threshold for inlining cold callsites")) |
| static cl::opt< int > | ColdThreshold ("inlinecold-threshold", cl::Hidden, cl::init(45), cl::desc("Threshold for inlining functions with cold attribute")) |
| static cl::opt< int > | HotCallSiteThreshold ("hot-callsite-threshold", cl::Hidden, cl::init(3000), cl::ZeroOrMore, cl::desc("Threshold for hot callsites ")) |
| static cl::opt< int > | LocallyHotCallSiteThreshold ("locally-hot-callsite-threshold", cl::Hidden, cl::init(525), cl::ZeroOrMore, cl::desc("Threshold for locally hot callsites ")) |
| static cl::opt< int > | ColdCallSiteRelFreq ("cold-callsite-rel-freq", cl::Hidden, cl::init(2), cl::ZeroOrMore, cl::desc("Maxmimum block frequency, expressed as a percentage of caller's " "entry frequency, for a callsite to be cold in the absence of " "profile information.")) |
| static cl::opt< int > | HotCallSiteRelFreq ("hot-callsite-rel-freq", cl::Hidden, cl::init(60), cl::ZeroOrMore, cl::desc("Minimum block frequency, expressed as a multiple of caller's " "entry frequency, for a callsite to be hot in the absence of " "profile information.")) |
| static cl::opt< bool > | OptComputeFullInlineCost ("inline-cost-full", cl::Hidden, cl::init(false), cl::desc("Compute the full inline cost of a call site even when the cost " "exceeds the threshold.")) |
| #define DEBUG_PRINT_STAT | ( | x | ) | dbgs() << " " #x ": " << x << "\n" |
| #define DEBUG_TYPE "inline-cost" |
Definition at line 45 of file InlineCost.cpp.
Definition at line 2180 of file InlineCost.cpp.
References InlineThreshold, llvm::InlineConstants::OptAggressiveThreshold, llvm::InlineConstants::OptMinSizeThreshold, and llvm::InlineConstants::OptSizeThreshold.
Referenced by llvm::getInlineParams().
|
static |
Test that there are no attribute conflicts between Caller and Callee that prevent inlining.
Definition at line 1949 of file InlineCost.cpp.
References llvm::AttributeFuncs::areInlineCompatible(), and llvm::TargetTransformInfo::areInlineCompatible().
Referenced by llvm::getInlineCost().
| STATISTIC | ( | NumCallsAnalyzed | , |
| "Number of call sites analyzed" | |||
| ) |
|
static |
|
static |
Referenced by llvm::getInlineParams().
|
static |
Referenced by llvm::getInlineParams().
|
static |
Referenced by llvm::getInlineParams().
|
static |
|
static |
|
static |
Referenced by computeThresholdFromOptLevels(), and llvm::getInlineParams().
|
static |
Referenced by llvm::getInlineParams().
1.8.13