This is the mail archive of the gcc-help@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: compiling large functions


Martin Wiebusch wrote:
Hi,

I'm having trouble compiling generated code, which results in very large function bodies. The structure of the function is quite simple; just a long list of variable = expression assignments, where each expression is at most 30 lines or so. The entire sourcefile can be up to 10MB. (Yes, it's a beast of a calculation.) Even without optimization, gcc uses all my 2Gig of memory and eventually quits with a "cc1plus: out of memory" message.

I have had limited success with splitting up the code into several smaller functions. What puzzles me is that, if I put all functions into the same source file, gcc still uses much more memory than when I put them in separate files (and eventually dies for the 10MB source).

Basically, I'm wondering whether there is a way to tell gcc to just compile (and maybe even optimize?) one assignment at a time and not try to keep the entire function in memory (assuming that that's what it does now).

Try -fno-unit-at-a-time ?


Alternatively, just put the different functions in different files (e.g. func1.c, func2.c, func3.c, etc), and generate your makefile automatically so you don't need to keep track of the names.

Tom


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