Tamar Christina <tamar.christ...@arm.com> writes: > diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt > index > f32d56d4ffaef7862c1c45a11753be5d480220d0..2725c50da64a2c05489ea6202bdd5eedf1ba7e27 > 100644 > --- a/gcc/config/aarch64/aarch64.opt > +++ b/gcc/config/aarch64/aarch64.opt > @@ -290,6 +290,10 @@ msve-vector-bits= > Target RejectNegative Joined Enum(sve_vector_bits) > Var(aarch64_sve_vector_bits) Init(SVE_SCALABLE) > -msve-vector-bits=<number> Set the number of bits in an SVE vector > register. > > +mmax-vectorization > +Target Undocumented Var(flag_aarch64_max_vectorization) Save
As mentioned in the review for v2, this is (rightly) not Undocumented :) so please drop the tag. > +Override the scalar cost model such that vectorization is always profitable. > + > mverbose-cost-dump > Target Undocumented Var(flag_aarch64_verbose_cost) > Enables verbose cost model dumping in the debug dump files. > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > index > 40ccf22b29f4316928f905ec2c978fdaf30a55ec..429cbeb8a3c8186af60b1441acb52bc052b60721 > 100644 > --- a/gcc/doc/extend.texi > +++ b/gcc/doc/extend.texi > @@ -3882,6 +3882,15 @@ Enable or disable calls to out-of-line helpers to > implement atomic operations. > This corresponds to the behavior of the command-line options > @option{-moutline-atomics} and @option{-mno-outline-atomics}. > > +@cindex @code{max-vectorization} function attribute, AArch64 > +@item max-vectorization > +@itemx no-max-vectorization > +@code{max-vectorization} tells GCC's vectorizer to treat all vector > +loops as being more profitable than the original scalar loops when > +optimizing the current function. @code{no-max-vectorization} disables > +this behavior. > +@option{-mmax-vectorization} and @option{-mno-max-vectorization}. I think there's a missing line above this one: This corresponds to the behavior of the command-line options > + > @cindex @code{indirect_return} function attribute, AArch64 > @item indirect_return > The @code{indirect_return} attribute can be applied to a function type > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index > 95a25c0f63b77f26db05a7b48bfad8f9c58bcc5f..54d4cf88cccd4d0e4ede3442ad9907faac325d52 > 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -21984,6 +21984,14 @@ used directly. The same applies when using > @option{-mcpu=} when the > selected cpu supports the @samp{lse} feature. > This option is on by default. > > +@item -mmax-vectorization > +@itemx -mno-max-vectorization > +Enable or disable override to vectorizer cost model making vectorization > always Enable or disable an override of the vector cost model, making vectorization always appear profitable. > +profitable. This option can be combined with -mautovec-preference=... > allowing s/-mautovec-preference=.../@option{-mautovec-preference}/ > +precise control over which ISA will be used for auto-vectorization. Unlike > +-fno-vect-cost-model or -fvect-cost-model=unlimited this option does not turn @option{-fno-vect-cost-model} or @option{-fvect-cost-model=unlimited} OK with those changes, thanks. Richard > +off cost comparison between different vector modes. > + > @opindex march > @item -march=@var{name} > Specify the name of the target architecture and, optionally, one or