min-function-alignment
The tracking issue for this feature is: https://github.com/rust-lang/rust/issues/82232.
The -Zmin-function-alignment=<align> flag specifies the minimum alignment of functions for which code is generated.
The align value must be a power of 2, other values are rejected.
Note that -Zbuild-std (or similar) is required to apply this minimum alignment to standard library functions.
By default, these functions come precompiled and their alignments won't respect the min-function-alignment flag.
This flag is equivalent to:
The specified alignment is a minimum. A higher alignment can be specified for specific functions by using the repr(align(...)) feature and annotating the function with a #[repr(align(<align>))] attribute. The attribute's value is ignored when it is lower than the value passed to min-function-alignment.
There are two additional edge cases for this flag:
- targets have a minimum alignment for functions (e.g. on x86_64 the lowest that LLVM generates is 16 bytes).
A
min-function-alignmentvalue lower than the target's minimum has no effect. - the maximum alignment supported by rust (and LLVM) is
2^29. Trying to set a higher value results in an error.