More pure optimizations

Ary Borenszweig ary at esperanto.org.ar
Wed Jun 3 18:28:12 PDT 2009


bearophile escribió:
> Once that optimization is in place, the reading access to associative arrays too can be marked as "pure" so the in the following code h["bar"] is seen as a loop invariant, and computed only once before the loop:
> 
> import std.c.stdio: printf;
> 
> int foo(int[string] h) {
>     int x;
>     for (int i; i < 100; i++)
>         x += h["bar"];
>     return x;
> }
> 
> void main() {
>     printf("%d\n", foo(["bar": 42]));
> }

What if a different thread modifies h in between the loop?



More information about the Digitalmars-d mailing list