------- Comment #18 from rguenth at gcc dot gnu dot org 2007-07-20 16:35
-------
I mean
<cite>
Current gcc finally produces:
*p = (a + 1) * 4;
*(p + 4) = (a + 2) * 4;
*(p + 8) = (a + 3) * 4;
movl 8(%esp), %eax
movl 4(%esp), %ecx
leal 4(,%eax,4), %edx
movl %edx, (%ecx)
leal 8(,%eax,4), %edx
leal 12(,%eax,4), %eax
movl %edx, 4(%ecx)
movl %eax, 8(%ecx)
ret
This has now the largest code size of all versions.
This new canonical form IMHO clearly conflicts with what is expected at RTL
level, so I don't understand why it's so important to use this one. Could you
maybe explain the reason behind this choice?
</cite>
which suggests that current trunk is worse with the patch. Or am I confused
and you are happy with the code generated by current trunk for the original
testcase?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32698