This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ix86_data_alignment: bad defaults?
>
> > > I like the "min (256, MAX_OFILE_ALIGNMENT)" fix...
> >
> > So do I.
>
> Ok to apply then? Tested via djgpp cross-compile and cross-host.
Yes, this is OK. (to be very pedantic, we can assert that
MAX_OFILE_ALIGNMENT>=256 on x86-64 targets, but well). I fully agree with
Richard's interpretation concerning BIGGEST_ALIGNMENT meaning - ie in
special cases for perofrmance it definitly makes sense to use higher
alignments than BIGGEST_ALIGNMENT (such as cache line or page
alignments), BIGGEST_ALIGNMENT is what CPU require and runtime must
provide when asked for.
Honza
>
> * config/i386/i386.c (ix86_data_alignment): Don't specify an
> alignment bigger than the object file can handle.
>
> Index: i386.c
> ===================================================================
> --- i386.c (revision 122271)
> +++ i386.c (working copy)
> @@ -15417,7 +15417,7 @@
> int
> ix86_data_alignment (tree type, int align)
> {
> - int max_align = optimize_size ? BITS_PER_WORD : 256;
> + int max_align = optimize_size ? BITS_PER_WORD : MIN (256, MAX_OFILE_ALIGNMENT);
>
> if (AGGREGATE_TYPE_P (type)
> && TYPE_SIZE (type)