------- Additional Comments From ian at wasabisystems dot com 2004-12-02 15:53 ------- I attached a simple test case. This is based on real existing code, although I changed all the values to hide potentially proprietary information. When I compile this file without optimization, it uses some 200M, and garbage collects while compiling this file. The compilation takes 1 minutes, 45 seconds. (This is much better than gcc 3.4.3, actually, which used all available memory, garbage collected twice, and wound up swapping for 10 minutes or so before completing).
When compiling with 2.95.3, the compiler uses 20M and completes in 37 seconds. The compiler used to work fine when processing very large initializers. As it read the initializer, gcc would output the initializer to the assembler file directly. This capability was removed here: http://gcc.gnu.org/ml/gcc-patches/2000-10/msg00933.html The followups to that message mention this type of problem. -- What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |3.4.3 4.0.0 Known to work| |2.95.3 Summary|Crashes when compiling large|[3.4.3/4.0.0 regression] |initialized arrays |Uses lots of memory when | |compiling large initialized | |arrays http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12245