This is the mail archive of the gcc-patches@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: PATCH: Turn on -fomit-frame-pointer by default for 32bit Linux/x86


On Aug 4, 2010, at 10:05 AM, Andrew Haley wrote:

> On 08/04/2010 05:22 PM, Andrew Haley wrote:
>> On 08/04/2010 05:08 PM, H.J. Lu wrote:
>>> On Wed, Aug 4, 2010 at 7:59 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
>>>> 
>>>> I went through the defualt changing discussion at a time we was introducing
>>>> x86-64 port.
>>>> In general, I believe -fomit-frame-pointer by default is win. x86-64
>>>> defaults to this for a while and thus the pain of switching should be limited,
>>>> since most of packages adopted to 64bit world.
>>>> 
>>>> Probably the most touchy issue concerning the switch is place
>>>> where you need stack unwinding fast.  This is the case of oprofile
>>>> and some of garbage collector implementations.
>>> 
>>> Can we find if oprofile works with -fomit-frame-pointer on 32bit Linux/x86.
>> 
>> I'll ask.
> 
> For oprofile the answer is "Oprofile has a very simple-minded
> mechanism that uses the frame pointers to walk the stack. If the frame
> pointers are turned off, the call graph information oprofile generates
> will be pretty limited. The flat profiling will still work fine."

FWIW, this is one of the main reasons why Darwin/i386 still uses frame pointers for the whole OS stack.  The kernel based profiler (shark) doesn't want to grovel through eh frame info from kernel space.  This means that -fomit-frame-pointers severely harms whole-system profiling on i386, which was considered unacceptable.

-Chris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]