This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix code quality regression on UltraSPARC
- From: Roger Sayle <roger at eyesopen dot com>
- To: Eric Botcazou <ebotcazou at libertysurf dot fr>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 13 Dec 2004 06:23:38 -0700 (MST)
- Subject: Re: [PATCH] Fix code quality regression on UltraSPARC
On Mon, 13 Dec 2004, Eric Botcazou wrote:
> > This also finesses your question "??? Can this ever happen?",
> > to which the answer is yes it can.
> Do you mean the latch is allowed to have more than one edge to
> the header?
Doh! My mistake, the call the make_forwarder_block should have
preserved the latch edges to the original loop header, so it
shouldn't appear in the preheader's predecessors. You're quite
right, the statemet is superfluous.
So not only do we get to remove that loop, the current condition
can be simplified to just "e = EDGE_PRED (dummy, 0);", i.e. pick
an arbitrary preheader predecessor.
Sorry for the confusion. As I mentioned before I keep thinking
in terms of the CFG/loop-best before this transformation, but
as you correctly point out, this bit of code gets run after we've
started making changes.