[lno] some cleanups for scev

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Thu Apr 15 16:12:00 GMT 2004


Hello,

> > > @@ -2330,9 +2291,36 @@ follow_ssa_edge_inner_loop_phi (struct l
> > >  				tree *evolution_of_loop)
> > >  {
> > >    struct loop *loop = loop_of_stmt (loop_phi_node);
> > > -  tree ev = compute_overall_effect_of_inner_loop (loop,
> > > -						  PHI_RESULT (loop_phi_node));
> > > +  tree ev = analyze_scalar_evolution (loop, PHI_RESULT (loop_phi_node));
> > > +
> > > +  /* Sometimes, the inner loop is too difficult to analyze, and the
> > > +     result of the analysis is a symbolic parameter.  */
> > > +  if (ev == PHI_RESULT (loop_phi_node))
> > 
> > note that I have removed whole "symbolic parameter" stuff, as it made us
> > produce really weird results (what should have been the purpose of it)?
> 
> When you have:
> 
> "a = f ()"
> "a = phi (unknown, unknown)"
> 
> it is still possible to keep the result under a symbolic form: "a".
> This mechanism was used in older versions of the analyzer, so it could
> be a little dusty.

I still do not understand.  We want the result to be chrec_top in this
case, don't we?  I.e. we want to know that we cannot say anything sane
about value of a.

Perhaps you could write a more complete example, so that it can be seen
what you have in mind?

> > So this case never triggers.
> > 
> 
> I don't think so.  

as I said, I removed this mechanism completely recently, so indeed it
cannot.

Zdenek



More information about the Gcc-patches mailing list