ix86_data_alignment: bad defaults?

Jan Hubicka hubicka@ucw.cz
Fri Feb 23 21:42:00 GMT 2007


> 
> > > 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)



More information about the Gcc mailing list