PRE (sometimes) confuses ivopts/scev?
Daniel Berlin
dberlin@dberlin.org
Mon Jan 24 16:16:00 GMT 2005
On Mon, 24 Jan 2005, Daniel Berlin wrote:
>
>
> On Mon, 24 Jan 2005, Richard Guenther wrote:
>
>> Hi!
>>
>> Are there known bad interaction PRs wrt PRE and loop optimizations?
>> I found only PR18848 for PRE problems. Sometimes a lot better code
>> is created with -fno-tree-pre -- SCEV seems to be confused
>> and produces (for only extra IVs?) scev_not_known with PRE, but not
>> without, i.e. some uses are not detected?
>
> Yes
> This is the wraparound variable problem.
> I have fixes for PRE to stop it from creating induction variables.
> Sebastian has improvements to SCEV that let it handle the type of induction
> variables PRE was creating (wraparound variables).
>
> Both patches are queued for 4.1
>
Just as a followup, sebastian's patch is at (the actual patch is ta the
end of the message. You sahouldn't need the other two parts he's pasted in front
of it anymore, i believe)
http://gcc.gnu.org/ml/gcc-patches/2004-11/msg02444.html
it should be applied because it helps us detect more simple evolutions
properly.
" during a bootstrap
there are about 7000 cases that are in fact just simple affine
evolution functions, but that are mishandled for the moment because
the scalar evolution analyzer was not enough smart to transform them."
In addition, the patch to teach PRE to stop creating *more*
wraparounds is also in the mail archives, see
http://gcc.gnu.org/ml/gcc-patches/2004-11/msg02222.html
If this problem is causing some performance regression or something with
regards to 3.x, please file a bug and i'll commit the PRE fix for 4.0.
--Dan
More information about the Gcc
mailing list