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. >