aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vector-builder.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-12-07 18:41:35 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-12-07 18:41:35 +0000
commitb3def403fa7ae89679468b8f986cab7361c1034d (patch)
treed1df9bee6f0c02966cfbd1044066b3e1bcea9f8e /gcc/tree-vector-builder.h
parent059c18abcb9c88bb5a85eb3ce468ffa7252da230 (diff)
downloadgcc-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.h1
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;