This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/18219] [4.0/4.1/4.2 Regression] bloats code by 31%
- 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: 12 May 2006 14:00:09 -0000
- Subject: [Bug tree-optimization/18219] [4.0/4.1/4.2 Regression] bloats code by 31%
- References: <bug-18219-9326@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #21 from rguenth at gcc dot gnu dot org 2006-05-12 14:00 -------
This looks related to PR26726 as IVOPTs produces now
<bb 2>:
i = minLen + 1;
D.1588 = (int *) (unsigned int) (i * 4);
ivtmp.34 = limit + D.1588 - 4B;
ivtmp.40 = base + D.1588;
goto <bb 4> (<L1>);
<L0>:;
D.1595 = (int *) ivtmp.40;
MEM[base: D.1595, offset: -4B] = (MEM[base: (int *) ivtmp.34, offset: -4B] +
1 << 1) - MEM[base: D.1595, offset: -4B];
i = i + 1;
<L1>:;
ivtmp.34 = ivtmp.34 + 4B;
ivtmp.40 = ivtmp.40 + 4B;
if (i <= maxLen) goto <L0>; else goto <L2>;
with the seemingly innocuous offset: -4B canonicalization because of the weird
i386 backend cost model. Now if fixing that would fix the size issue is
another thing. Not replacing the exit test or using i as solely IV is another
thing - but it doesn't even consider i as IV candidate.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
BugsThisDependsOn| |26726
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18219