Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-12-01 Thread H.J. Lu
On Wed, Oct 31, 2012 at 3:39 AM, Jan Hubicka wrote: > Hi, > this patch implements the logic to remove statements that are known to be > undefined and thus expected to not be executed after unrolling. It also > removes redundant exits that I originally tried to do at once, but it > does not fly, s

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Richard Biener
On Wed, 31 Oct 2012, Jan Hubicka wrote: > > On Wed, Oct 31, 2012 at 01:30:02PM +0100, Richard Biener wrote: > > > On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > > > unroll you mean. Because unrolling mutates the CFG too much. > > > > > Well - it was just a starting point, populating -Og with as li

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Jan Hubicka
> On Wed, Oct 31, 2012 at 01:30:02PM +0100, Richard Biener wrote: > > On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > > unroll you mean. Because unrolling mutates the CFG too much. > > > > Well - it was just a starting point, populating -Og with as little > > > > as possible and 100% profitable tran

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Richard Biener
On Wed, 31 Oct 2012, Jakub Jelinek wrote: > On Wed, Oct 31, 2012 at 01:30:02PM +0100, Richard Biener wrote: > > On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > > unroll you mean. Because unrolling mutates the CFG too much. > > > > Well - it was just a starting point, populating -Og with as little >

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Jakub Jelinek
On Wed, Oct 31, 2012 at 01:30:02PM +0100, Richard Biener wrote: > On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > unroll you mean. Because unrolling mutates the CFG too much. > > > Well - it was just a starting point, populating -Og with as little > > > as possible and 100% profitable transforms (in

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Richard Biener
On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > > unroll you mean. Because unrolling mutates the CFG too much. > > Well - it was just a starting point, populating -Og with as little > > as possible and 100% profitable transforms (in both debug and speed > > metric). In late opts we only do (early

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Jan Hubicka
> > unroll you mean. Because unrolling mutates the CFG too much. > Well - it was just a starting point, populating -Og with as little > as possible and 100% profitable transforms (in both debug and speed > metric). In late opts we only do (early opt queue is shared): Well, and what about early

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Richard Biener
On Wed, 31 Oct 2012, Jan Hubicka wrote: > > > Index: tree-ssa-loop-niter.c > > > === > > > --- tree-ssa-loop-niter.c (revision 192989) > > > @@ -3505,15 +3737,11 @@ scev_probably_wraps_p (tree base, tree s > > >return true; > > >

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Jan Hubicka
> > Index: tree-ssa-loop-niter.c > > === > > --- tree-ssa-loop-niter.c (revision 192989) > > @@ -3505,15 +3737,11 @@ scev_probably_wraps_p (tree base, tree s > >return true; > > } > > > > -/* Frees the information on upper bou

Re: Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Richard Biener
On Wed, 31 Oct 2012, Jan Hubicka wrote: > Hi, > this patch implements the logic to remove statements that are known to be > undefined and thus expected to not be executed after unrolling. It also > removes redundant exits that I originally tried to do at once, but it > does not fly, since the pee

Non-dominating loop bounds in tree-ssa-loop-niter 3/4

2012-10-31 Thread Jan Hubicka
Hi, this patch implements the logic to remove statements that are known to be undefined and thus expected to not be executed after unrolling. It also removes redundant exits that I originally tried to do at once, but it does not fly, since the peeling confuse number_of_iterations_exit and it no lo