The attached file benefits greatly from the ARM postincrement address mode.
In 4.1.1 and 4.2 20060923, we no longer get postincrement addressing mode, but (base+4) followed by base = base+4 This leads to an increase in instruction count of 40%. While the test is of course trivial, I see real code not benefiting from postmodify quite often while using 4.1.1. I'm not quite sure if it belongs in tree-optimization, but it comes out of the expander as separate (set (reg B) (plus (reg A) (4)) (set (reg C) (plus (reg A) (4)) which is how it ends up in the assembly.... -- Summary: 4.1, 4.2 (possibly 4.0?) not finding postmodify address mode on ARM Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: eplondke at gmail dot com GCC host triplet: x86_64-suse-linux GCC target triplet: arm-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29294