[patch] Removal of finite empty loops

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Sat Jul 17 17:59:00 GMT 2004


Hello,

> On Sat, Jul 17, 2004 at 01:28:25AM +0200, Zdenek Dvorak wrote:
> > hardly.  The loop pass is quite far from cd_dce and keeping such flag
> > through cfg cleanups would be a hell.
> 
> We don't permute the cfg randomly.  You've already shown that
> the loop does not terminate; what sorts of changes do you think
> may cause the edge to get removed out from under you?

1) We haven't proved it does not terminate.  We were not able that it
   does terminate.  Some other pass could determine it does.
2) Anyway, we need to mark the back edge for not being removed.
   Quite a lot of things may happen to latch edge of a loop (well,
   typically it gets destroyed in jump threading just after end of
   loop optimization pass...)
3) And in any case, inserting a flag that any future optimization
   would be forced to keep seems like a bad idea to me, when we already
   have a simple way how to communicate the information to dce that is
   guaranteed to work unconditionally.

Zdenek



More information about the Gcc-patches mailing list