The amount of memory a compilation requires depends on several parameters, including:
Size of each procedure
Level of optimization
Limits set for virtual memory
Size of the disk swap file
On the SPARC platform, if the optimizer runs out of memory, it tries to recover by retrying the current procedure at a lower level of optimization. The optimizer then resumes subsequent routines at the original level specified in the -xOlevel option on the command line.
If you compile a single source file that contains many routines, the compiler might run out of memory or swap space. Try reducing the level of optimization. Alternatively, split the largest procedures into separate files of their own.