Can D optimize?

Johan Engelen j at j.nl
Sun Jun 9 09:59:17 UTC 2019


On Sunday, 9 June 2019 at 05:24:56 UTC, Amex wrote:
> Can dmd or ldc optimize the following cases:
>
> foo(int x)
> {
>    if (x > 10 && x < 100) bar1; else bar2;
> }
>
>
> ...
>
> for(int i = 23; i < 55; i++)
>    foo(i); // equivalent to calling bar1(i)
>
> clearly i is within the range of the if in foo and so the 
> checks are unnecessary.

This is a simple case of inlining for the optimizer, so works out 
well with LDC and GDC:
https://d.godbolt.org/z/pLy8Yy

-Johan



More information about the Digitalmars-d-learn mailing list