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

Reply via email to