Re: CONFIG_FRAME_POINTER on ppc/ppc64?

2 messages, 2 authors, 2005-08-16 · open the first message on its own page

Re: CONFIG_FRAME_POINTER on ppc/ppc64?

From: David Edelsohn <hidden>
Date: 2005-08-16 04:03:26

quoted
quoted
quoted
quoted
Kumar Gala writes:
quoted
Because -fomit-frame-pointer and -fno-omit-frame-pointer have no
effect on ppc or ppc64, I assume. :)
Kumar> I'm assuming that's a guess.  The reason I ask that is my memory  
Kumar> serves correctly r31 is used as the frame pointer if compiled that  
Kumar> way.  Maybe some GCC expert can chime in.  I'll copy David Edelsohn  
Kumar> and see if I get a response :)

	I am missing some context here.  On both 32-bit PowerPC Linux
(PowerPC SVR4) and 64-bit PowerPC Linux, GPR r31 is used as the frame
pointer.  PowerPC does not have a dedicated frame pointer and the PowerPC
ABI does not require an independent frame pointer in a function at all
times, so it can be omitted by default.  If the frame pointer is not
referenced for any unique needs, uses of the frame pointer are adjusted to
reference the stack pointer.  GCC only retains the PowerPC frame pointer
when dynamic stack allocation (alloca) is used within a function.
-fomit-frame-pointer has no effect on PowerPC because it is enabled by
default.

David

Re: CONFIG_FRAME_POINTER on ppc/ppc64?

From: Paul Mackerras <hidden>
Date: 2005-08-16 05:23:50

David Edelsohn writes:
Kumar> I'm assuming that's a guess.  The reason I ask that is my memory  
Kumar> serves correctly r31 is used as the frame pointer if compiled that  
Kumar> way.  Maybe some GCC expert can chime in.  I'll copy David Edelsohn  
Kumar> and see if I get a response :)

	I am missing some context here.  On both 32-bit PowerPC Linux
(PowerPC SVR4) and 64-bit PowerPC Linux, GPR r31 is used as the frame
pointer.  PowerPC does not have a dedicated frame pointer and the PowerPC
ABI does not require an independent frame pointer in a function at all
times, so it can be omitted by default.  If the frame pointer is not
referenced for any unique needs, uses of the frame pointer are adjusted to
reference the stack pointer.  GCC only retains the PowerPC frame pointer
when dynamic stack allocation (alloca) is used within a function.
-fomit-frame-pointer has no effect on PowerPC because it is enabled by
default.
OK, my memory was at fault then.

The reason for having the kernel config option is that it is
impossible to get reliable stack traces on x86 without frame pointers.
On PPC, because the stack frames are always linked together, even if
you don't use a frame pointer, the frame pointer doesn't help in
getting stack traces.  Thus there is no point in having the kernel
config option.

Paul.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help