http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53911

             Bug #: 53911
           Summary: [SH] Improve displacement addressing
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: olege...@gcc.gnu.org
            Target: sh*-*-*


The address re-basing for displacement addresses could be improved by looking
at all the required displacements in a function.
The current approach re-bases an address on certain alignments and just hopes
that the new base address will be useful and that CSE will eliminate redundant
address re-base calculations.
Probably a target specific RTL pass is required to accomplish this.
Since address re-base calculations require additional registers it has an
impact on register allocation.  Thus the pass should be ran sometime after
combine and before reload.  On the other hand, reload itself might generate
displacement addresses to access pseudos on the stack, which also produces
displacement addressings.  Probably it would be useful to run the pass again
after reload, too.

Reply via email to