This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Jul 2007 16:35:12 -0000
- Subject: [Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression
- References: <bug-32698-14001@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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