------- Comment #1 from kkojima at gcc dot gnu dot org  2007-07-02 14:21 -------
I don't think that this is a bug.  Without optimization, all
intermediate variables can be allocated on stack.  It's the case
even on other architectures.  The test case #2 is compiled to

        pushl   %ebp
        movl    %esp, %ebp
        subl    $16, %esp
        movl    y, %edx
        movl    x, %eax
        movl    %eax, -12(%ebp)

on x86 with -O0 and if you added two more x = add(x,y); lines to
#2, you got

        pushl   %ebp
        movl    %esp, %ebp
        subl    $32, %esp
        movl    y, %edx
        movl    x, %eax
        movl    %eax, -28(%ebp)

i.e. more invocations of inline functions requires more intermediate
variables and stack area.  Reducing the number of such variables or
using hardware registers for them if possible is already an optimization
and is not expected with -O0.


-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32577

Reply via email to