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 ;)
> 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.
>> 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.
>> * 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.