This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/21529] code size regression (+40%) with -Os from GCC-3.4.3 to 4.1
- From: "steven 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 2005 10:39:06 -0000
- Subject: [Bug c/21529] code size regression (+40%) with -Os from GCC-3.4.3 to 4.1
- References: <20050512094159.21529.etienne_lorrain@yahoo.fr>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2005-05-12 10:39 -------
Yada yada yada, you know the drill. SRA, out-of-ssa, and register
allocation all working against each other:
<L6>:;
D.1605 = DI.IDE_found + (struct IDE_found_str *) ((long unsigned int) i *
8);
tmp$reserved = D.1605->reserved;
tmp$bios_order = D.1605->bios_order;
tmp$irq = D.1605->irq;
tmp$ideIOctrladr = D.1605->ideIOctrladr;
tmp$ideIOadr = D.1605->ideIOadr;
D.1605->reserved = save$reserved;
D.1605->bios_order = save$bios_order;
D.1605->irq = save$irq;
D.1605->ideIOctrladr = save$ideIOctrladr;
D.1605->ideIOadr = save$ideIOadr;
i = i + 1;
save$reserved = tmp$reserved;
save$bios_order = tmp$bios_order;
save$irq = tmp$irq;
save$ideIOctrladr = tmp$ideIOctrladr;
save$ideIOadr = tmp$ideIOadr;
Wouldn't a block move be more efficient here than moving things one-by-one?
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |ra
Last reconfirmed|0000-00-00 00:00:00 |2005-05-12 10:39:02
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21529