This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/53911] New: [SH] Improve displacement addressing
- From: "olegendo at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 10 Jul 2012 07:38:37 +0000
- Subject: [Bug target/53911] New: [SH] Improve displacement addressing
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: olegendo@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.