LLVM
8.0.1
|
Represents the cost of inlining a function. More...
#include "llvm/Analysis/InlineCost.h"
Public Member Functions | |
operator bool () const | |
Test whether the inline cost is low enough for inlining. More... | |
bool | isAlways () const |
bool | isNever () const |
bool | isVariable () const |
int | getCost () const |
Get the inline cost estimate. More... | |
int | getThreshold () const |
Get the threshold against which the cost was computed. More... | |
const char * | getReason () const |
Get the reason of Always or Never. More... | |
int | getCostDelta () const |
Get the cost delta from the threshold for inlining. More... | |
Static Public Member Functions | |
static InlineCost | get (int Cost, int Threshold) |
static InlineCost | getAlways (const char *Reason) |
static InlineCost | getNever (const char *Reason) |
Represents the cost of inlining a function.
This supports special values for functions which should "always" or "never" be inlined. Otherwise, the cost represents a unitless amount; smaller values increase the likelihood of the function being inlined.
Objects of this type also provide the adjusted threshold for inlining based on the information available for a particular callsite. They can be directly tested to determine if inlining should occur given the cost and threshold for this cost metric.
Definition at line 64 of file InlineCost.h.
|
inlinestatic |
Definition at line 87 of file InlineCost.h.
References assert().
Referenced by llvm::getInlineCost().
|
inlinestatic |
Definition at line 92 of file InlineCost.h.
Referenced by llvm::createAlwaysInlinerLegacyPass(), llvm::getInlineCost(), and isWrapperOnlyCall().
|
inline |
Get the inline cost estimate.
It is an error to call this on an "always" or "never" InlineCost.
Definition at line 110 of file InlineCost.h.
References assert().
Referenced by hasProfileData(), operator<<(), shouldBeDeferred(), and shouldInline().
|
inline |
Get the cost delta from the threshold for inlining.
Only valid if the cost is of the variable kind. Returns a negative value if the cost is too high to inline.
Definition at line 131 of file InlineCost.h.
Referenced by hasProfileData(), and shouldBeDeferred().
|
inlinestatic |
Definition at line 95 of file InlineCost.h.
Referenced by llvm::createAlwaysInlinerLegacyPass(), llvm::getInlineCost(), and isWrapperOnlyCall().
Get the reason of Always or Never.
Definition at line 122 of file InlineCost.h.
References assert().
Referenced by operator<<().
|
inline |
Get the threshold against which the cost was computed.
Definition at line 116 of file InlineCost.h.
References assert(), and Threshold.
Referenced by operator<<().
|
inline |
Definition at line 104 of file InlineCost.h.
Referenced by emit_inlined_into(), hasProfileData(), operator<<(), shouldBeDeferred(), and shouldInline().
|
inline |
Definition at line 105 of file InlineCost.h.
Referenced by callsiteIsHot(), hasProfileData(), operator<<(), and shouldInline().
|
inline |
Definition at line 106 of file InlineCost.h.
|
inlineexplicit |
Test whether the inline cost is low enough for inlining.
Definition at line 100 of file InlineCost.h.
References Threshold.