Sun Studio 12: Fortran User's Guide

3.4.13 –dalign

Align COMMON blocks and standard numerical sequence types, and generate faster multi-word load/stores.

This flag changes the data layout in COMMON blocks, numeric sequence types, and EQUIVALENCE classes, and enables the compiler to generate faster multi-word load/stores for that data.

The data layout effect is that of the -f flag: double- and quad-precision data in COMMON blocks and EQUIVALENCE classes are laid out in memory along their “natural” alignment, which is on 8-byte boundaries (or on 16-byte boundaries for quad-precision when compiling for 64-bit environments with -m64). The default alignment of data in COMMON blocks is on 4-byte boundaries. The compiler is also allowed to assume natural alignment and generate faster multi-word load/stores to reference the data.

Using -dalign along with -xtypemap=real:64,double:64,integer:64 also causes 64-bit integer variables to be double-word aligned on SPARC processors.


Note –

-dalign may result in nonstandard alignment of data, which could cause problems with variables in EQUIVALENCE or COMMON and may render the program non-portable if -dalign is required.


-dalign is a macro equivalent to:

-xmemalign=8s -aligncommon=16 on SPARC platforms

-aligncommon=8 on 32-bit x86 platforms

-aligncommon=16 on 64-bit x86 platforms.

If you compile one subprogram with -dalign, compile all subprograms of the program with -dalign. This option is included in the -fast option.

Note that because -dalign invokes -aligncommon, standard numeric sequence types are also affected by this option. See 3.4.2 –aligncommon[={1|2|4|8|16}]