On 11/17/2017 08:15 AM, Richard Sandiford wrote:
> This patch adds a hook to control whether we avoid executing masked
> (predicated) stores when the mask is all false. We don't want to do
> that by default for SVE.
>
> Tested on aarch64-linux-gnu (with and without SVE), x86_64-linux-gnu
> and powerpc64le-linux-gnu. OK to install?
>
> Richard
>
>
> 2017-11-17 Richard Sandiford <richard.sandif...@linaro.org>
> Alan Hayward <alan.hayw...@arm.com>
> David Sherwood <david.sherw...@arm.com>
>
> gcc/
> * target.def (empty_mask_is_expensive): New hook.
> * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook.
> * doc/tm.texi: Regenerate.
> * targhooks.h (default_empty_mask_is_expensive): Declare.
> * targhooks.c (default_empty_mask_is_expensive): New function.
> * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores
> if the target says that empty masks are expensive.
> * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive):
> New function.
> (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine.
OK.
jeff