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

Klaus Espenlaub espenlaub@informatik.uni-ulm.de
Mon Mar 17 10:36:00 GMT 2003


The following reply was made to PR optimization/5477; it has been noted by GNATS.

From: Klaus Espenlaub <espenlaub@informatik.uni-ulm.de>
To: bangerth@dealii.org,  gcc-bugs@gcc.gnu.org,  gcc-prs@gcc.gnu.org, 
 nobody@gcc.gnu.org,  gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: optimization/5477: gcc 3.0.x reserves a large stack frame, but
 uses only some parts of it
Date: Mon, 17 Mar 2003 11:33:57 +0100

 bangerth@dealii.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@informatik.uni-ulm.de
 



More information about the Gcc-prs mailing list