The tramp3d-v4.cpp testcase with flatten (aka leafify) enabled requires excessive amount of memory for the compile, if exceptions are not disabled via -fno-exceptions.
Compiling with -O2 -Dleafify=flatten -fno-exceptions mainline needs at max. 670MB of ram, while omitting -fno-exceptions it tops out at 2.7GB(!). Testing was done on x86_64 with 8GB ram to avoid hitting swap. ggc params are --param ggc-min-expand=100 --param ggc-min-heapsize=131072. The tramp3d-v4.cpp testcase is available from http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d-v4.cpp.gz -ftime-report from the -fexceptions run shows Execution times (seconds) garbage collection : 19.16 ( 4%) usr 1.10 (11%) sys 20.33 ( 4%) wall 0 kB ( 0%) ggc ... integration : 188.01 (41%) usr 2.53 (26%) sys 191.29 (40%) wall 842654 kB (24%) ggc ... tree CFG cleanup : 10.57 ( 2%) usr 0.05 ( 1%) sys 10.69 ( 2%) wall 33061 kB ( 1%) ggc tree VRP : 5.18 ( 1%) usr 0.14 ( 1%) sys 5.14 ( 1%) wall 40349 kB ( 1%) ggc tree copy propagation : 5.46 ( 1%) usr 0.09 ( 1%) sys 5.56 ( 1%) wall 5073 kB ( 0%) ggc tree store copy prop : 1.10 ( 0%) usr 0.02 ( 0%) sys 0.97 ( 0%) wall 1015 kB ( 0%) ggc tree find ref. vars : 3.96 ( 1%) usr 0.05 ( 1%) sys 4.06 ( 1%) wall 150561 kB ( 4%) ggc tree PTA : 17.47 ( 4%) usr 0.29 ( 3%) sys 17.45 ( 4%) wall 59716 kB ( 2%) ggc tree alias analysis : 12.44 ( 3%) usr 0.61 ( 6%) sys 12.84 ( 3%) wall 95403 kB ( 3%) ggc tree PHI insertion : 2.25 ( 0%) usr 0.02 ( 0%) sys 2.49 ( 1%) wall 35414 kB ( 1%) ggc tree SSA rewrite : 11.87 ( 3%) usr 0.04 ( 0%) sys 11.91 ( 3%) wall 203499 kB ( 6%) ggc tree SSA other : 2.02 ( 0%) usr 0.22 ( 2%) sys 2.46 ( 1%) wall 2499 kB ( 0%) ggc tree SSA incremental : 25.40 ( 6%) usr 0.18 ( 2%) sys 26.07 ( 6%) wall 63750 kB ( 2%) ggc tree operand scan : 10.79 ( 2%) usr 1.18 (12%) sys 12.01 ( 3%) wall 116147 kB ( 3%) ggc dominator optimization: 11.64 ( 3%) usr 0.08 ( 1%) sys 12.08 ( 3%) wall 168798 kB ( 5%) ggc ... expand : 15.71 ( 3%) usr 0.07 ( 1%) sys 15.54 ( 3%) wall 194871 kB ( 6%) ggc ... TOTAL : 461.33 9.78 473.07 3503243 kB -- Summary: Exceptions require an excessive amount of compile-time memory Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at tat dot physik dot uni-tuebingen dot de CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23928