LLVM API Documentation

Defines | Functions | Variables
InlineCost.cpp File Reference
#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/AssumptionTracker.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/CodeMetrics.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/DataLayout.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"
Include dependency graph for InlineCost.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "inline-cost"
#define DEBUG_PRINT_STAT(x)   dbgs() << " " #x ": " << x << "\n"

Functions

 STATISTIC (NumCallsAnalyzed,"Number of call sites analyzed")
 INITIALIZE_PASS_BEGIN (InlineCostAnalysis,"inline-cost","Inline Cost Analysis", true, true) INITIALIZE_PASS_END(InlineCostAnalysis
static bool attributeMatches (Function *F1, Function *F2, Attribute::AttrKind Attr)
 Test that two functions either have or have not the given attribute at the same time.
static bool functionsHaveCompatibleAttributes (Function *Caller, Function *Callee)
 Test that there are no attribute conflicts between Caller and Callee that prevent inlining.

Variables

inline cost
inline Inline Cost Analysis
inline Inline Cost true

Define Documentation

#define DEBUG_PRINT_STAT (   x)    dbgs() << " " #x ": " << x << "\n"
#define DEBUG_TYPE   "inline-cost"

Definition at line 38 of file InlineCost.cpp.


Function Documentation

static bool attributeMatches ( Function F1,
Function F2,
Attribute::AttrKind  Attr 
) [static]

Test that two functions either have or have not the given attribute at the same time.

Definition at line 1265 of file InlineCost.cpp.

References llvm::Function::hasFnAttribute().

Referenced by functionsHaveCompatibleAttributes().

static bool functionsHaveCompatibleAttributes ( Function Caller,
Function Callee 
) [static]

Test that there are no attribute conflicts between Caller and Callee that prevent inlining.

Definition at line 1272 of file InlineCost.cpp.

References attributeMatches(), llvm::Attribute::SanitizeAddress, llvm::Attribute::SanitizeMemory, and llvm::Attribute::SanitizeThread.

Referenced by llvm::InlineCostAnalysis::getInlineCost().

INITIALIZE_PASS_BEGIN ( InlineCostAnalysis  ,
"inline-cost ,
"Inline Cost Analysis ,
true  ,
true   
)
STATISTIC ( NumCallsAnalyzed  ,
"Number of call sites analyzed"   
)

Variable Documentation

inline Inline Cost Analysis

Definition at line 1237 of file InlineCost.cpp.

Definition at line 1237 of file InlineCost.cpp.

Referenced by isProfitableChain().

inline Inline Cost true

Definition at line 1237 of file InlineCost.cpp.