When is the stack pointer unreliable?
Jeffrey A Law
law@cygnus.com
Sun Sep 6 14:01:00 GMT 1998
In message < 199809060409.AAA02189@jwlab.FEITH.COM >you write:
> I noticed that i386 backend reloads the stack pointer in
> situations where it shouldn't be necessary. In i386.c
> (ix86_epilogue) is the comment:
>
> /* sp is often unreliable so we must go off the frame pointer.
>
> Since reloading the stack pointer causes a stall on some processors
> it should be avoided when possible. Under what situations is sp
> unreliable?
alloca calls, variable sized objects in the stack come immediately
to mind.
You might also need to check if the compiler has optimized away
popping of args after a function call if we unconditionally reach the
epilogue after performing the call.
jeff
More information about the Gcc
mailing list