LLVM API Documentation
Represents the cost of inlining a function. More...
#include <InlineCost.h>
Public Member Functions | |
LLVM_EXPLICIT | operator bool () const |
Test whether the inline cost is low enough for inlining. | |
bool | isAlways () const |
bool | isNever () const |
bool | isVariable () const |
int | getCost () const |
Get the inline cost estimate. It is an error to call this on an "always" or "never" InlineCost. | |
int | getCostDelta () const |
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. | |
Static Public Member Functions | |
static InlineCost | get (int Cost, int Threshold) |
static InlineCost | getAlways () |
static InlineCost | getNever () |
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 51 of file InlineCost.h.
static InlineCost llvm::InlineCost::get | ( | int | Cost, |
int | Threshold | ||
) | [inline, static] |
Definition at line 67 of file InlineCost.h.
Referenced by llvm::InlineCostAnalysis::getInlineCost().
static InlineCost llvm::InlineCost::getAlways | ( | ) | [inline, static] |
Definition at line 72 of file InlineCost.h.
Referenced by llvm::InlineCostAnalysis::getInlineCost().
int llvm::InlineCost::getCost | ( | ) | const [inline] |
Get the inline cost estimate. It is an error to call this on an "always" or "never" InlineCost.
Definition at line 90 of file InlineCost.h.
References isVariable().
Referenced by getCostDelta().
int llvm::InlineCost::getCostDelta | ( | ) | const [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 98 of file InlineCost.h.
References getCost().
static InlineCost llvm::InlineCost::getNever | ( | ) | [inline, static] |
Definition at line 75 of file InlineCost.h.
Referenced by llvm::InlineCostAnalysis::getInlineCost().
bool llvm::InlineCost::isAlways | ( | ) | const [inline] |
Definition at line 84 of file InlineCost.h.
Referenced by isVariable().
bool llvm::InlineCost::isNever | ( | ) | const [inline] |
Definition at line 85 of file InlineCost.h.
Referenced by isVariable().
bool llvm::InlineCost::isVariable | ( | ) | const [inline] |
Definition at line 86 of file InlineCost.h.
References isAlways(), and isNever().
Referenced by getCost().
LLVM_EXPLICIT llvm::InlineCost::operator bool | ( | ) | const [inline] |
Test whether the inline cost is low enough for inlining.
Definition at line 80 of file InlineCost.h.