5.7.7.11 Align-loops Option
The -falign-loops=n:m:n2:m2
option aligns loops to the next power of two greater than
n, skipping up to
m-1 bytes. For instance,
-falign-loops=32 aligns loops to the next 32-byte boundary;
-falign-loops=24 aligns loops to the next 32-byte boundary but only
if this can be done by skipping no more than 23 bytes.
All arguments are optional.
Arguments preceding any argument that is specified are mandatory. If
m is not specified, it defaults to
n. The
-fno-align-loops form of this option is equivalent to
-falign-loops=1, which implies that the loop is not aligned. If
n is not specified or is zero, a default of
alignment of 1 byte is used, which implies that the loop is not aligned. For PIC32C/SAM devices,
nmust not exceed 64. If
n is not a power of 2, the alignment value is
rounded up.
For instance, -falign-loops=32 aligns loops to the next 32-byte
boundary; -falign-loops=24 aligns loops to the next 32-byte boundary
but only if this can be done by skipping no more than 23 bytes;
-falign-jumps=32:7 aligns to the next 32-byte boundary only if
this can be done by skipping 6 bytes or fewer.
The second pair of
n2:m2 values allows you to
specify a secondary alignment: -falign-loops=64:7:32:3 aligns to the
next 64-byte boundary if this can be done by skipping 6 bytes or fewer, otherwise aligns
to the next 32-byte boundary if this can be done by skipping 2 bytes or fewer. If
m2 is not specified, it defaults to
n2
If the loops are executed many times, this makes up for any execution of the dummy padding instructions.
If the alignment values specified by -falign-labels is greater than that
specified with this option, then its value is used to align loops instead.
