Re: Unexpected optimizer behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Frank Neuhaus wrote:
> On Fri, Jun 26, 2009 at 8:36 PM, Andrew Haley<aph@xxxxxxxxxx> wrote:
> 
>> If gcc inlines Image::resize, it knows that pixels does not escape, and whatever
>> is in pixels cannot have any effect elsewhere.
>>
>> To learn more, compile with -fdump-tree-all and look at x.cc.*t.optimized.
>> You may find it interesting.
> 
> Hm ok that indeed looks interesting. However as i see it it only shows
> me the way the optimizer laid things out, not the reason for why it is
> this way, right?
> 
> I still don't precisely understand the reason for this behavior.

Well, I did tell you.  :-)

No, that's not it.  gcc doesn't look inside resize() when it's
compiling main().  So, it doesn't know what resize() does.

> Also what would happen if resize was called somewhere else in a
> complex function that can't be inlined for some reason? Then even
> inlining wouldn't help right? Would -O3 always do the trick or are
> there cases where I still need to be afraid that this happens?

I have no idea what you might be afraid of.  But the more the
compiler inlines, the more it can do, because the more it can see.

Andrew.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux