dmd simple loop disassembly - redundant instruction?

Lionello Lunesu lionello at lunesu.remove.com
Thu Dec 26 00:08:13 PST 2013


On 12/25/13, 20:03, Ivan Kazmenko wrote:
> -----
> L2C:        mov    -03D0900h[EDX*4][EBP],EDX
>          mov    ECX,EDX
>          inc    EDX
>          cmp    EDX,0F4240h
>          jb    L2C
> -----

You should have said that all instructions are redundant :) Looks like 
the array got optimized out, but then the optimizer stopped. The ECX 
likely refers to the 'i' loop variable. When the array write code got 
optimized out, the compile could have figured out that 'i' was in turn 
unused as well and remove it too. And then, the foreach, etc...

You can file backend bugs on the same site.



More information about the Digitalmars-d-learn mailing list