This is the mail archive of the gcc@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: i386 stack slot optimisation


Øyvind Harboe wrote:
The external functions in my example using the arrays ensures that the
arrays are not optimized away.

Ah, right, stupid mistake on my part.


The registers that are spilled are allocated place in the stack frame
last, so when FRAME_GROWS_DOWNWARD, the displacement offsets are
smaller for spilled registers than with the stack frame growing upwards.

I see what I missed the first time. Without optimization, we have stack locals, which get allocated early. With optimization, we have pseudo-regs which get spilled to the stack, which get allocated late. So you are right, it is FRAME_GROWS_DOWNWARD that caused the behaviour you saw.


However, I would not call this an optimization. This is just how the toolchain accidentally happens to work.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



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