This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Mainline space problem
- From: James E Wilson <wilson at specifixinc dot com>
- To: Bradley Lucier <lucier at math dot purdue dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 30 Aug 2004 19:59:56 -0700
- Subject: Re: Mainline space problem
- References: <3ACEDCDC-FA31-11D8-8FE4-003065BA681E@math.purdue.edu>
Bradley Lucier wrote:
It would be nice if someone could try to fix the problem here. I don't
know why it's still marked as UNCONFIRMED when Andrew has noted the
precise allocation that fails.
The problem Andrew pointed out isn't something that can be fixed.
global builds a conflict matrix that is quadratic in number of pseudos.
So if you have 100K+ pseudos, then you need 2GB+ of memory. This
can't be fixed, at least not in global.
The only way to solve this is to try to reduce the number of pseudos
created. As this testcase has a very large function that uses a lot of
&&label extensions, coding this differently would help, though I realize
this may not be feasible. Since we already have 100K+ pseudos in the
.rtl dump, and they all appear to be used, there is probably nothing we
can do in the RTL optimizer. So the only option would be to look for a
way to throttle the tree/gimple optimizer to avoid over optimizing very
large functions to the point where gcc will run out of memory. This
isn't a very interesting task for a volunteer.
Since you care more about this problem than anyone else at the moment,
you might try tracking down the problem a bit more. If the testcase
really did work two months ago, then you might be able to find a patch
that broke it. If you can do that, then you are more likely to find
someone to look at the problem. Otherwise, it isn't clear that anything
broke. This may just be a side-effect of the new tree/gimple optimizers.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com