This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/42511] [4.5 Regression] bootstrap error in stage3 on alpha-linux-gnu
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Jan 2010 07:29:16 -0000
- Subject: [Bug rtl-optimization/42511] [4.5 Regression] bootstrap error in stage3 on alpha-linux-gnu
- References: <bug-42511-5724@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #20 from ubizjak at gmail dot com 2010-01-07 07:29 -------
(In reply to comment #19)
> > Following patch changes the fix from PR21767 to remove REG_EQUAL notes from all
> > moved instructions, not only from ones that have non-function-invariant
> > sources.
>
> This seems like a tad aggressive. Why not remove the REG_EQUAL note after the
> constant propagation has happened instead?
Because at the point of propagation, propagated constant _is_ equal to whatever
REG_EQUAL says. Removing this note at the point of propagation would IMO
disable much more optimization opportunities.
BTW: This fixup happens in very rare occasions. Although the loop looks scary,
it usually processes very small BBs (I didn't found the case where more than
one assignment was moved at the top of the test BB.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42511