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: [lno] tree-ssa merge





> My first message was not clear.

Sebastian, I think it is *my* message that wasn't clear: I was trying to
say that reading your note revealed to me that the loop-bound
transformation mechanism in the vectorizer also needs to be fixed following
the recent changes in the loop control (i.e, the exit condition is not at
the top of the loop anymore). My fix has nothing to do with calculating the
loop bound, but rather in the way the vectorizer creates the new exit
condition for the vectorized loop - the loop-bound transformation scheme
creates a new induction variable, updates it and uses it to check the new
exit condition. After the tree-ssa merge - this new iv update is in the
wrong place in the loop.

dorit



                                                                                                                              
                      Pop Sebastian                                                                                           
                      <pop@gauvain.u-st        To:       Dorit Naishlos/Haifa/IBM@IBMIL                                       
                      rasbg.fr>                cc:       gcc-patches@gcc.gnu.org, Zdenek Dvorak                               
                                                <rakdver@atrey.karlin.mff.cuni.cz>                                            
                      26/01/2004 15:27         Subject:  Re: [lno] tree-ssa merge                                             
                                                                                                                              




On Mon, Jan 26, 2004 at 03:09:26PM +0200, Dorit Naishlos wrote:
>
>
>
>
>
> > Yes, I'm working on making the analyzer work again correctly.  The
> > changes brought in code that is equivalent of the loop header copy:
> > instead of having the exit condition of a loop at the top of the loop,
> > ....
> > ....
> > Based on the fact that the loop count is computed using the exit
> > expression, the nb_iterations is thus sometimes one iteration less
> > than the true number of iterations.  In fact, at the moment, the
> > nb_iterations is the number of times the exit condition has to be
> > evaluated at runtime before exiting the loop.  I'm working on a fix.
>
> Thanks for the detailed explanation Sebastian - I have also fixed the
> loop-bound transformation in the vectorizer accordingly.

My first message was not clear.

The value that is stored in nb_iterations is currently broken: it
should be the number of iterations in the loop, and not the number of
evaluations of the exit condition.  One of the patches I'm working on
fixes this.  You can use a temporary patch for this, but then you'll
maybe have to revert it.




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