This is the mail archive of the gcc-prs@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


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

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
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 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]