Report a bugIf you spot a problem with this page, click here to create a Bugzilla issue.
Improve this pageQuickly 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 usinga local clone.
dmd.inlinecost
Compute the cost of inlining a function call by counting expressions.
pure nothrow @safe bool
tooCostly(int
cost);
Determine if too expensive to inline.
Returns:true if too costly
int
inlineCostExpression(Expression
e);
Determine cost of inlining Expression
Parameters:Expressione | Expression to determine cost of |
Returns:cost of inlining e
int
inlineCostFunction(FuncDeclaration
fd, bool
hasthis, bool
hdrscan);
Determine cost of inlining function
Parameters:FuncDeclarationfd | function to determine cost of |
boolhasthis | if the function call has explicit 'this' expression |
boolhdrscan | if generating a header file |
Returns: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.
Parameters:DeclarationExpe | the declaration expression that may represent an aggregate. |
Returns:null ife is not an aggregate or if it is an aggregate that doesn't permit inlining, and the aggregate otherwise.