This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/5477: gcc 3.0.x reserves a large stack frame, butuses only some parts of it
- From: Klaus Espenlaub <espenlaub at informatik dot uni-ulm dot de>
- To: bangerth at dealii dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
- Date: Mon, 17 Mar 2003 11:33:57 +0100
- Subject: Re: optimization/5477: gcc 3.0.x reserves a large stack frame, butuses only some parts of it
- References: <20030315043832.8567.qmail@sources.redhat.com>
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