This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Modernize loop_finite_p


On Wed, 31 Oct 2012, Jan Hubicka wrote:

> > > -  FOR_EACH_VEC_ELT (edge, exits, i, ex)
> > > +  if (loop->any_upper_bound)
> > >      {
> > > -      if (!just_once_each_iteration_p (loop, ex->src))
> > > -	continue;
> > > +      if (dump_file && (dump_flags & TDF_DETAILS))
> > > +	fprintf (dump_file, "Found loop %i to be finite: upper bound is recorded.\n",
> > > +		 loop->num);
> > > +      return true;
> > > +    }
> > 
> > This looks redundant with ...
> > 
> > > -      if (number_of_iterations_exit (loop, ex, &desc, false))
> > > -        {
> > > -	  if (dump_file && (dump_flags & TDF_DETAILS))
> > > -	    {
> > > -	      fprintf (dump_file, "Found loop %i to be finite: iterating ", loop->num);
> > > -	      print_generic_expr (dump_file, desc.niter, TDF_SLIM);
> > > -	      fprintf (dump_file, " times\n");
> > > -	    }
> > > -	  finite = true;
> > > -	  break;
> > > -	}
> > > +  if (max_loop_iterations (loop, &nit))
> > > +    {
> > 
> > ... this.  If you want to short-circuit max_loop_iterations ()
> > then why not
> > 
> >    if (loop->any_upper_bound
> >        || max_loop_iterations (loop, &nit))
> >      {
> >        ...
> > 
> > ?  The different dumping seems not a good reason to obfuscate it.
> > 
> 
> Sounds good to me.  I only wanted to avoid max_loop_iterations re-trying to
> derrive the bound when it is already known to be finite.  I think I will
> eventually make max_loop_iterations and friends to do the hard work only once
> per loop optimizer queue or when asked to collect the current bounds (since
> the pointers to statements are hard to maintain).
> 
> OK with that change?

Ok.

Thanks,
Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]