This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

Roger
--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]