Array bound checks removal increasing importance
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jun 1 13:46:05 PDT 2014
On Saturday, 31 May 2014 at 10:56:06 UTC, bearophile wrote:
> void main() {
> int[5] data;
> foreach (const i; 0 .. 10)
> data[i] = 0;
> foreach (immutable i; 0 .. 10)
> data[i] = 0;
> int[10] big;
> foreach (const i, x; big)
> data[i] = x;
> }
>
>
> But the compiler must recognize this as correct code:
>
>
> void main() {
> int[5] data;
> foreach (const i; 0 .. 10)
> if (i < 5)
> data[i] = 0;
> }
>
>
> Can this logic be added to D?
>
>
> More info on the topic:
> http://en.wikipedia.org/wiki/Bounds-checking_elimination
> http://ssw.jku.at/Research/Papers/Wuerthinger07/Wuerthinger07.pdf
>
> Bye,
> bearophile
What do GDC or LDC generate for these sample code with
optimizations on ?
More information about the Digitalmars-d
mailing list