Mainline space problem

James E Wilson wilson@specifixinc.com
Tue Aug 31 03:17:00 GMT 2004


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



More information about the Gcc mailing list