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: Mainline space problem


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



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