dmd.inlinecost
Compute the cost of inlining a function call by counting expressions.
License
Source: inlinecost.d
Documentation: https://dlang.org/phobos/dmd_inlinecost.html
-
Declaration
pure nothrow bool
tooCostly
(intcost
);Determine if too expensive to inline.
Parameters
int
cost
cost
of inliningReturn Value
true
if too costly -
Declaration
int
inlineCostExpression
(Expressione
);Determine cost of inlining Expression
Parameters
Expression
e
Expression to determine cost of
Return Value
cost of inlining
e
-
Declaration
int
inlineCostFunction
(FuncDeclarationfd
, boolhasthis
, boolhdrscan
);Determine cost of inlining function
Parameters
FuncDeclaration
fd
function to determine cost of
bool
hasthis
if the function call has explicit 'this' expression
bool
hdrscan
if generating a header file
Return Value
cost of inlining
fd
-
Declaration
AggregateDeclaration
isInlinableNestedAggregate
(DeclarationExpe
);Indicates if a nested aggregate prevents or not a function to be inlined. It's used to compute the cost but also to avoid a copy of the aggregate while the inliner processes.
Parameters
DeclarationExp
e
the declaration expression that may represent an aggregate.
Return Value
null
if
is not an aggregate or if it is an aggregate that doesn't permit inlining, and the aggregate otherwise.e