This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[rfc] stack alignment macro cleanup
- From: Richard Henderson <rth at redhat dot com>
- To: ubizjak at gmail dot com, hjl dot tools at gmail dot com, Jakub Jelinek <jakub at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Sat, 02 Oct 2010 13:01:22 -0700
- Subject: [rfc] stack alignment macro cleanup
Currently we have
STACK_BOUNDARY
-- minimum alignment enforced by hardware.
PREFERRED_STACK_BOUNDARY
-- a preserved alignment greater than what the hw enforces
(defaults to STACK_BOUNDARY)
INCOMING_STACK_BOUNDARY
-- an alignment provided by callers on function entry.
(defaults to PREFERRED_STACK_BOUNDARY)
MIN_STACK_BOUNDARY
(undocumented; local to i386 atm)
-- appears to be the ABI specified stack boundary, i.e.
the minimum that must be in place at a call site. This
somehow differs from I_S_B due to proliferation of
command-line options.
MAX_STACK_ALIGNMENT
-- biggest stack alignment guaranteed by the backend.
(defaults to STACK_BOUNDARY, @c sez ought to be P_S_B)
MAX_SUPPORTED_STACK_ALIGNMENT
(undocumented; defined solely by defaults.h)
-- the same as M_S_A, but with the P_S_B default.
I would like to reduce this to
STACK_BOUNDARY
-- unchanged
INCOMING_STACK_BOUNDARY
-- default to S_B; x86 backend drops MIN_S_B.
MAX_STACK_BOUNDARY
-- default to I_S_B.
and delete many of the x86 backend options that fiddle
stuff that users ought not be fiddling. Like forcing
the use of DRAP register.
Thoughts?
r~