This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/39326] Segmentation fault with -O1, out of memory with -O2
- From: "steven at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 07 Mar 2013 22:15:39 +0000
- Subject: [Bug middle-end/39326] Segmentation fault with -O1, out of memory with -O2
- Auto-submitted: auto-generated
- References: <bug-39326-4@http.gcc.gnu.org/bugzilla/>
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