[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