dmd optimizer now converted to D!

Ivan Kazmenko gassa at mail.ru
Thu Jul 5 18:56:47 UTC 2018


On Thursday, 5 July 2018 at 14:05:42 UTC, Seb wrote:
> FYI: you can introduce scopes with static foreach to declare 
> new variables:
>
> for (int i = 0; i < 4 * n; i += 4)
> {
>     static foreach (k; 0..4)
>     {{
>        auto idx = i + k
>        a[idx] += idx;
>     }}
> }

Thanks!  The two parentheses trick is nice.

Generally, I was reluctant to declare a variable because, well, 
micro-optimizing means being dissatisfied with compiler 
optimization.  So the mindset didn't allow me to just go and 
declare a variable in the innermost loop, in fear that the 
optimizer might not optimize the allocation away.



More information about the Digitalmars-d mailing list