lkml.org 
[lkml]   [2004]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: GCC 3.4 and broken inlining.
    On Sat, Jul 10, 2004 at 03:21:17AM +0200, Adrian Bunk wrote:
    > > one thing to note is that you also need to monitor stack usage then :)
    > > inlining somewhat blows up stack usage so do monitor it...
    >
    > How could inlining increase stack usage?

    void foo1(void)
    {
    char array[200];
    do_something(array);
    }

    void foo2(void)
    {
    char other_array[200];
    do_somethingelse(other_array);
    }

    void function_to_which_they_inline(void)
    {
    foo1();
    foo2();
    }

    (assume the do_* functions get inlined into foo or are defines or whatever)

    without inlining it's clear that the max stack usage is 200, the lifetimes
    of the 2 arrays are 100% exclusive.

    With inlining, gcc reorders instructions in it's optimisation passes, and as
    a result the lifetimes of the 2 arrays no longer are exclusive and as a
    result gcc has no choice to have both separately on the stack.

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2005-03-22 14:04    [W:9.443 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site