compiling large functions

Tom St Denis tstdenis@ellipticsemi.com
Fri Oct 3 17:07:00 GMT 2008


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



More information about the Gcc-help mailing list