http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39326



--- Comment #38 from Steven Bosscher <steven at gcc dot gnu.org> 2013-03-07 
22:15:39 UTC ---

Created attachment 29612

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29612

Punt on loops with more memory references than LIM can handle



For the LIM problem, I'm thinking of a patch like this one (not tested

yet).  Basically, this means giving up on really large loops with many

loads and/or stores.  That's not an unreasonable thing to do anyway.

Code motion from really big loops usually isn't an improvement.



Richi, could you have a look at this, and see if I've got it all right,

more-or-less?  LIM is quite complicated and I'm not sure if I should

look at, or update, the set of optimizable loops somewhere.



With the patch, and with "-O2 -fgcse", I now have:



gap_TlnLv4.c: In function 'RDFT_49152_1':

gap_TlnLv4.c:37502:18: warning: -ftree-loop-im: number of memory references in

loop exceeds the --param loops-max-datarefs-for-datadeps threshold

[-Wdisabled-optimization]

      t12308[500] = t12304[6144*i0+1000];

                  ^



 dead store elim1        :  57.70 ( 8%)

 dead store elim2        :  76.82 (10%)

 combiner                : 360.07 (48%)

 reload CSE regs         :  55.44 ( 7%)

 TOTAL                   : 743.77

Reply via email to