This is the mail archive of the gcc@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: PRE (sometimes) confuses ivopts/scev?




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



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