Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


Compute the cost of inlining a function call by counting expressions.

Source inlinecost.d

pure nothrow @safe bool tooCostly(int cost);
Determine if too expensive to inline.
int cost cost of inlining
true if too costly
int inlineCostExpression(Expression e);
Determine cost of inlining Expression
Expression e Expression to determine cost of
cost of inlining e
int inlineCostFunction(FuncDeclaration fd, bool hasthis, bool hdrscan);
Determine cost of inlining function
FuncDeclaration fd function to determine cost of
bool hasthis if the function call has explicit 'this' expression
bool hdrscan if generating a header file
cost of inlining fd
AggregateDeclaration isInlinableNestedAggregate(DeclarationExp e);
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.
DeclarationExp e the declaration expression that may represent an aggregate.
null if e is not an aggregate or if it is an aggregate that doesn't permit inlining, and the aggregate otherwise.