middle-end/10776: [3.3/3.4 regression] Large aggregate initializers with a single relocated entry causes excessive compile time regression

giovannibajo@libero.it giovannibajo@libero.it
Thu May 15 01:59:00 GMT 2003


Old Synopsis: [3.3 regression] Large aggregate initializers cause GCC to fail
New Synopsis: [3.3/3.4 regression] Large aggregate initializers with a single relocated entry causes excessive compile time regression

State-Changed-From-To: open->analyzed
State-Changed-By: bajo
State-Changed-When: Thu May 15 00:00:00 2003
State-Changed-Why:
    I have attached the reduced testcase as "pr10776.cpp.bz2".
    There is a huge compile time regression when the code is
    being compiled with -O[123], in 3.3 and 3.4 (and 3.2).
    The same code compiles in a decent amount of time (and
    memory usage) with 2.95. Notice that the whole regression
    can be eliminated by commenting a single relocated entry
    in the initializers (in the code, just comment the macro
    COMPILE_TIME_BUG defined at the beginning of the file).
    It looks like the optimizer is dieing because too much
    code is generated in the constructor/destructor initializer
    function. I think this is a middle-end bug, and I moved it
    to the middle-end category: probably GCC should be smarter
    and use memcpy whenever it's possible.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10776



More information about the Gcc-bugs mailing list