This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: optimization/5477: gcc 3.0.x reserves a large stack frame, butuses only some parts of it


bangerth at dealii dot org wrote:
Synopsis: gcc 3.0.x reserves a large stack frame, but uses only some parts of it

State-Changed-From-To: open->feedback
State-Changed-By: bangerth
State-Changed-When: Sat Mar 15 04:38:32 2003
State-Changed-Why:
    Klaus, for unknown reasons the attachment I find in the
    report doesn't have a main() function -- thus no checking
    possible. Do you still have the program so that you can
    send it to me? I'll attach it to the report then.

The code is taken from a libc subset, therefore there is no main(). If you insist on having a piece of code that can be compiled to an executable program, just append the following few lines to the code:

-------------------------- snip
int __console_putchar(int c)
{
        return putchar(c);
}

int main(void)
{
	do_printf(NULL, 30, "Hello, world!\n", NULL);
	return 0;
}
-------------------------- snip

It doesn't make much sense in this context to have a fully compilable piece of
code, since the problem is not that the resulting program fails to compile or
fails to run, but that it uses one order of magniture more stack space than it
would need to.  So it's no good candidate for automated regression checking,
since neither the compiler fails nor the compiled program.  There's not much
more possible than manually follow the How-To-Repeat section of the bug report.

Another comment on the base problem: the compiler bug seems to be fixed in
gcc-3.2.  There might still be room for improvement, but the current stack
consumption is quite acceptable: gcc-3.0 reserved 380 bytes of stack space,
while gcc-3.2 reserves only 28.

    Regarding the problem itself: yes, known problem. We
    have several such reports in the database :-(

The solution for me will be to upgrade to gcc-3.2 everywhere in the very near future.

Regards
--
Klaus Espenlaub                      Email:  espenlaub at informatik dot uni-ulm dot de


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]