This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [lno] tree-ssa merge
- From: Dorit Naishlos <DORIT at il dot ibm dot com>
- To: Pop Sebastian <pop at gauvain dot u-strasbg dot fr>
- Cc: gcc-patches at gcc dot gnu dot org, Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Date: Mon, 26 Jan 2004 16:35:24 +0200
- Subject: 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.