Very slow compilation, out of memory problems on build 14964
|
|
Bugzilla Link |
287 |
Created on |
Aug 24, 2006 16:39 |
Resolution |
FIXED |
Resolved on |
Oct 03, 2006 21:16 |
Version |
1.00beta |
OS |
Linux |
Architecture |
PC |
Extended Description
I spent some time today looking at these problems.
NASmg_rotate.sac is typical:
1. Several compiler phases(phase 11 SCI, phase 12 eliminating
loops and conditionals, phase 15 inlining lac fns, preparing
code, code generation) all run for extended periods (5-10 minutes!) of time.
Eventually, I'll take a look at SCI with a profiler and see if I can
tell what's up, but we likely either have huge lists of
locals, or a huge number of functions. Or both...
2. Compiling with "sac2c -O3 NASmg_rotate.sac" eats most
of a 1.5GB machine. I saw over 1GB allocated after SCI, and
about 1.2GB during C code creation. If I run it on an otherwise
naked machine (no multiple sessions running), it squeaks by
with "top" reporting 26MB free at some points.
If I crank up an APL session that eats 100MB, the C compiler invocation dies
on out-of memory:
-------------------------------------
* 17: Creating C file: ...
Writing file "NASmg_rotate.exe.c"
** 18: Invoking C compiler: ...
ABORT: System failure while trying to execute shell command.
ABORT: (e.g. out of memory).
*** Compilation failed ***
*** Exit code 18 (Invoking C compiler)
*** 1 Error(s), 290 Warning(s)
ABORT: System failure while trying to execute shell command.
ABORT: (e.g. out of memory).
*** Compilation failed ***
*** Exit code 18 (Invoking C compiler)
*** 2 Error(s), 290 Warning(s)
ABORT: System failure while trying to execute shell command.
----------------------------------------------------
Perhaps the nearly 1.3GB of AST and friends were not given back to
the system before invoking the C compiler?