This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 01 Dec 2011 08:51:07 +0000
- Subject: [Bug tree-optimization/50904] [4.7 regression] pessimization when -fno-protect-parens is enabled by -Ofast
- Auto-submitted: auto-generated
- References: <bug-50904-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904
--- Comment #18 from rguenther at suse dot de <rguenther at suse dot de> 2011-12-01 08:51:07 UTC ---
On Sat, 12 Nov 2011, ebotcazou at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904
>
> Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> Status|ASSIGNED |NEW
> CC| |rguenth at gcc dot gnu.org
> Component|rtl-optimization |tree-optimization
> AssignedTo|ebotcazou at gcc dot |unassigned at gcc dot
> |gnu.org |gnu.org
>
> --- Comment #15 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-11-12 16:45:13 UTC ---
> > I don't see why RTL invariant motion should move the one variant but not
> > the other. Of course this also shows that we should, after loop unrolling
> > on the tree level, also perform loop invariant motion again ...
>
> AFAICS we already do that (lim3 is run after cunroll). The problem is that
> lim3 considers that the loads cannot be hoisted because they are "dependent".
> And it looks like a ccp pass is missing after cunroll as there is a lot of
> cruft...
lim3 was added as a "hack", now yes, cunroll needs ccp after it (but it's
there in the form of DOM and VRP). It's a pass ordering issue that we
cannot ever solve.
> Recategorizing, at least temporarily, for further investigation. If nothing
> can be done at the Tree level, we could consider applying the RTL patch.
Please - it seems like a missed optimization there, too.
Richard.