diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-12-07 18:41:35 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-12-07 18:41:35 +0000 |
commit | b3def403fa7ae89679468b8f986cab7361c1034d (patch) | |
tree | d1df9bee6f0c02966cfbd1044066b3e1bcea9f8e /gcc/tree-vector-builder.h | |
parent | 059c18abcb9c88bb5a85eb3ce468ffa7252da230 (diff) | |
download | gcc-b3def403fa7ae89679468b8f986cab7361c1034d.zip gcc-b3def403fa7ae89679468b8f986cab7361c1034d.tar.gz gcc-b3def403fa7ae89679468b8f986cab7361c1034d.tar.bz2 |
Use tree_vector_builder::new_binary_operation for folding
This patch makes fold-const.c operate directly on the VECTOR_CST
encoding when folding an operation that has two VECTOR_CST inputs.
2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* tree-vector-builder.h
(tree_vector_builder::new_binary_operation): Declare.
* tree-vector-builder.c
(tree_vector_builder::new_binary_operation): New function.
* fold-const.c (fold_relational_const): Use it.
(const_binop): Likewise. Check that both input vectors have
the same number of elements, thus excluding things like WIDEN_SUM.
Check whether it is possible to operate directly on the encodings
of stepped inputs.
From-SVN: r255477
Diffstat (limited to 'gcc/tree-vector-builder.h')
-rw-r--r-- | gcc/tree-vector-builder.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-vector-builder.h b/gcc/tree-vector-builder.h index b7b5625..b89d3ab 100644 --- a/gcc/tree-vector-builder.h +++ b/gcc/tree-vector-builder.h @@ -38,6 +38,7 @@ public: void new_vector (tree, unsigned int, unsigned int); bool new_unary_operation (tree, tree, bool); + bool new_binary_operation (tree, tree, tree, bool); private: bool equal_p (const_tree, const_tree) const; |