LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | 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/ConstantFolding.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Operator.h"
#include "llvm/InstVisitor.h"
#include "llvm/Support/CallSite.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for InlineCost.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "inline-cost"
 
#define DEBUG_PRINT_STAT(x)   llvm::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. More...
 
static bool functionsHaveCompatibleAttributes (Function *Caller, Function *Callee)
 Test that there are no attribute conflicts between Caller and Callee that prevent inlining. More...
 

Variables

inline cost
 
inline Inline Cost Analysis
 
inline Inline Cost true
 

Macro Definition Documentation

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

Definition at line 14 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 1176 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 1183 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 1149 of file InlineCost.cpp.

inline cost

Definition at line 1149 of file InlineCost.cpp.

Referenced by isProfitableChain().

inline Inline Cost true

Definition at line 1149 of file InlineCost.cpp.