r278231 - in /trunk/gcc: ChangeLog config/aarch...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Thu Nov 14 14:45:00 GMT 2019


Author: rsandifo
Date: Thu Nov 14 14:45:49 2019
New Revision: 278231

URL: https://gcc.gnu.org/viewcvs?rev=278231&root=gcc&view=rev
Log:
Add build_truth_vector_type_for_mode

Callers of vect_halve_mask_nunits and vect_double_mask_nunits
already know what mode the resulting vector type should have,
so we might as well create the vector type directly with that mode,
just like build_vector_type_for_mode lets us build normal vectors
with a known mode.  This avoids the current awkwardness of having
to recompute the mode starting from vec_info::vector_size, which
hard-codes the assumption that all vectors have to be the same size.

A later patch gets rid of build_truth_vector_type and
build_same_sized_truth_vector_type, so the net effect of the
series is to reduce the number of type functions by one.

2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* tree.h (build_truth_vector_type_for_mode): Declare.
	* tree.c (build_truth_vector_type_for_mode): New function,
	split out from...
	(build_truth_vector_type): ...here.
	(build_opaque_vector_type): Fix head comment.
	* tree-vectorizer.h (supportable_narrowing_operation): Remove
	vec_info parameter.
	(vect_halve_mask_nunits): Replace vec_info parameter with the
	mode of the new vector.
	(vect_double_mask_nunits): Likewise.
	* tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
	(vect_double_mask_nunits): Likewise.
	* tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h.
	(vect_maybe_permute_loop_masks): Remove vinfo parameter.  Update call
	to vect_halve_mask_nunits, getting the required mode from the unpack
	patterns.
	(vect_set_loop_condition_masked): Update call accordingly.
	* tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info
	parameter and update call to vect_double_mask_nunits.
	(vectorizable_conversion): Update call accordingly.
	(simple_integer_narrowing): Likewise.  Remove vec_info parameter.
	(vectorizable_call): Update call accordingly.
	(supportable_widening_operation): Update call to
	vect_halve_mask_nunits.
	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
	Use build_truth_vector_type_mode instead of build_truth_vector_type.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-sve-builtins.cc
    trunk/gcc/tree-vect-loop-manip.c
    trunk/gcc/tree-vect-loop.c
    trunk/gcc/tree-vect-stmts.c
    trunk/gcc/tree-vectorizer.h
    trunk/gcc/tree.c
    trunk/gcc/tree.h



More information about the Gcc-cvs mailing list