The following choices of name are available on AArch64 targets:
aarch64-vect-compare-costs ¶When vectorizing, consider using multiple different approaches and use the cost model to choose the cheapest one. This includes:
aarch64-float-recp-precision ¶The number of Newton iterations for calculating the reciprocal for float type. The precision of division is proportional to this parameter when division approximation is enabled. The default value is 1.
aarch64-double-recp-precision ¶The number of Newton iterations for calculating the reciprocal for double type. The precision of division is proportional to this parameter when division approximation is enabled. The default value is 2.
aarch64-autovec-preference ¶An old alias for -mautovec-preference. If both -mautovec-preference and --param=aarch64-autovec-preference are passed, the --param value is used.
aarch64-ldp-policy ¶Fine-grained policy for load pair (stp) instructions.
With --param=aarch64-ldp-policy=default, use the policy of the
tuning structure. This is the current default.
With --param=aarch64-ldp-policy=always, emit ldp regardless
of alignment.
With --param=aarch64-ldp-policy=never, do not emit ldp.
With --param=aarch64-ldp-policy=aligned, emit ldp only if the
source pointer is aligned to at least double the alignment of the type.
aarch64-stp-policy ¶Fine-grained policy for store pair (stp) instructions.
With --param=aarch64-stp-policy=default, use the policy of the
tuning structure. This is the current default.
With --param=aarch64-stp-policy=always, emit stp regardless
of alignment.
With --param=aarch64-stp-policy=never, do not emit stp.
With --param=aarch64-stp-policy=aligned, emit stp only if the
source pointer is aligned to at least double the alignment of the type.
aarch64-ldp-alias-check-limit ¶Limit on the number of alias checks performed by the AArch64 load/store pair
fusion pass when attempting to form an ldp/stp.
Higher values make the pass
more aggressive at re-ordering loads over stores, at the expense of increased
compile time.
aarch64-ldp-writeback ¶Parameter to control which writeback opportunities the AArch64 load/store pair fusion pass attempts to handle. A value of zero disables writeback handling. One means we try to form pairs involving one or more existing individual writeback accesses where possible. A value of two means we also try to opportunistically form writeback opportunities by folding in trailing destructive updates of the base register used by a pair.
aarch64-loop-vect-issue-rate-niters ¶The tuning for some AArch64 CPUs tries to take both latencies and issue rates into account when deciding whether a loop should be vectorized using SVE, vectorized using Advanced SIMD, or not vectorized at all. If this parameter is set to n, GCC does not use this heuristic for loops that are known to execute in fewer than n Advanced SIMD iterations.
aarch64-vect-unroll-limit ¶The vectorizer uses available tuning information to determine whether it would be beneficial to unroll the main vectorized loop and by how much. This parameter sets the upper bound of how much the vectorizer unrolls the main loop. The default value is four.
aarch64-tag-memory-loop-threshold ¶Parameter to control the treshold in number of granules beyond which an explicit loop for tagging a memory block is emitted. The memory block is tagged using MTE instructions.