mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Add two statistics to help track how we are computing the inline cost.
Yea, 'NumCallerCallersAnalyzed' isn't a great name, suggestions welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154492 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2e506198c8
commit
d6fc26217e
@ -29,9 +29,12 @@
|
||||
#include "llvm/ADT/SetVector.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/ADT/SmallPtrSet.h"
|
||||
#include "llvm/ADT/Statistic.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
STATISTIC(NumCallsAnalyzed, "Number of call sites analyzed");
|
||||
|
||||
namespace {
|
||||
|
||||
class CallAnalyzer : public InstVisitor<CallAnalyzer, bool> {
|
||||
@ -802,6 +805,8 @@ ConstantInt *CallAnalyzer::stripAndComputeInBoundsConstantOffsets(Value *&V) {
|
||||
/// is below the computed threshold, then inlining was forcibly disabled by
|
||||
/// some artifact of the rountine.
|
||||
bool CallAnalyzer::analyzeCall(CallSite CS) {
|
||||
++NumCallsAnalyzed;
|
||||
|
||||
// Track whether the post-inlining function would have more than one basic
|
||||
// block. A single basic block is often intended for inlining. Balloon the
|
||||
// threshold by 50% until we pass the single-BB phase.
|
||||
|
@ -36,6 +36,11 @@ STATISTIC(NumCallsDeleted, "Number of call sites deleted, not inlined");
|
||||
STATISTIC(NumDeleted, "Number of functions deleted because all callers found");
|
||||
STATISTIC(NumMergedAllocas, "Number of allocas merged together");
|
||||
|
||||
// This weirdly named statistic tracks the number of times that, when attemting
|
||||
// to inline a function A into B, we analyze the callers of B in order to see
|
||||
// if those would be more profitable and blocked inline steps.
|
||||
STATISTIC(NumCallerCallersAnalyzed, "Number of caller-callers analyzed");
|
||||
|
||||
static cl::opt<int>
|
||||
InlineLimit("inline-threshold", cl::Hidden, cl::init(225), cl::ZeroOrMore,
|
||||
cl::desc("Control the amount of inlining to perform (default = 225)"));
|
||||
@ -277,6 +282,7 @@ bool Inliner::shouldInline(CallSite CS) {
|
||||
}
|
||||
|
||||
InlineCost IC2 = getInlineCost(CS2);
|
||||
++NumCallerCallersAnalyzed;
|
||||
if (!IC2) {
|
||||
callerWillBeRemoved = false;
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user