On Tue, Mar 13, 2012 at 7:31 PM, Andrew Pinski <pins...@gmail.com> wrote: > Ping? Rebootstrapped on x86_64-linux-gnu with no regressions.
Zdenek, can you have a look here? I think the patch is reasonable, but you should have a better idea ;) Thanks, Richard. > Thanks, > Andrew Pinski > > On Sat, Jan 21, 2012 at 1:21 PM, Andrew Pinski <pins...@gmail.com> wrote: >> The problem with these two bug reports is that the cfgloop does not do >> a good job for disambiguating some loops. This patch rewrites >> find_subloop_latch_edge_by_ivs to be better. It is able to detect >> much more loops and gets the ones which are referenced in PR 50971 and >> PR 35629. It does make sure the loops it finds are really loops and >> not ones where the continue would cause a loop not to be done. >> >> OK for 4.8 when stage 1 comes? Bootstrapped and tested on >> x86_64-linux-gnu with no regressions. >> >> ChangeLog: >> cfgloop.c (skip_to_exit): New function. >> (find_subloop_latch_edge_by_ivs): Rewrite to better detect subloop latches by >> IVs. Also look at the cfg for those IVs to check for a better choice. >> >> testsuite/ChangeLog: >> * gcc.dg/tree-ssa/loop-25.c: Remove xfails and remove "Found latch >> edge"/"Merged latch edges" tests. >> * gcc.dg/tree-ssa/loop-38.c: New testcase.