This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass
- 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: 30 Nov 2008 21:18:50 -0000
- Subject: [Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass
- References: <bug-37364-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #28 from steven at gcc dot gnu dot org 2008-11-30 21:18 -------
You're not explaining what regmove does. What transformation do these
alternatives with "*" enable regmove to do?
I'm not saying that a separate pass is not an option. Perhaps a regmove-like
pass is necessary. In fact it probably is, I think even Vlad already
acknowledged so. But not regmove as-we-know-it, which is a friggin' mess that
ought to go away.
What we should figure out IMHO, is which transformation(s) it is (are) that
regmove does, which are helpful here. Maybe we can add a simple pre-regalloc
pass that does these transformations, or make it part of an existing pass,
using clean infrastructure (cfg, df) instead of the ad-hoc mess of regmove.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37364