Ping!
On Tue, Nov 27, 2012 at 03:32:46PM +0530, Siddhesh Poyarekar wrote: > Ping! > > Siddhesh > > On Wed, Nov 21, 2012 at 12:42:13PM +0530, Siddhesh Poyarekar wrote: > > Hi, > > > > Ping! > > > > > > Siddhesh > > > > On Thu, 15 Nov 2012 19:05:38 +0530, Siddhesh wrote: > > > > > Hi, > > > > > > Here's an updated version of the patch which warns the user if the > > > removing of redundant exits results in an infinite loop. I have added > > > an additional flag in struct loop called external_exits to record if > > > an exit edge is moved outside the loop body. This currently happens > > > in the loop-unswitch pass and was the root cause of the regression in > > > torture/pr49518.c that I talked about earlier. The patch now passes > > > all regression tests except a mudflap case (fail37-frag). The test is > > > already broken due to removal of all exits so I haven't attempted to > > > fix it as part of this patch. How does this version look? > > > > > > Regards, > > > Siddhesh > > > > > > gcc/ChangeLog: > > > > > > * cfgloop.h (struct loop): New member EXTERNAL_EXITS. > > > * tree-ssa-loop-ivcanon.c (remove_redundant_iv_tests) Warn > > > when loop is left without any exits. > > > * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Set > > > EXTERNAL_EXITS when moving a statement with an exit edge out > > > of the loop body. > >