r255476 - in /trunk/gcc: ChangeLog fold-const.c

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Thu Dec 7 18:41:00 GMT 2017


Author: rsandifo
Date: Thu Dec  7 18:41:13 2017
New Revision: 255476

URL: https://gcc.gnu.org/viewcvs?rev=255476&root=gcc&view=rev
Log:
Use tree_vector_builder::new_unary_operation for folding

This patch makes fold-const.c operate directly on the VECTOR_CST
encoding when folding an operation that has a single VECTOR_CST input.

2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
	new_unary_operation, operating only on the encoded elements.
	(const_unop): Likewise.
	(exact_inverse): Likewise.
	(distributes_over_addition_p): New function.
	(const_binop): Use tree_vector_builder and new_unary_operation
	for combinations of VECTOR_CST and INTEGER_CST.  Operate only
	on the encoded elements unless the encoding is strided and the
	operation does not distribute over addition.
	(fold_convert_const):  Use tree_vector_builder and
	new_unary_operation.  Operate only on the encoded elements
	for truncating integer conversions, or for non-stepped encodings.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c



More information about the Gcc-cvs mailing list