aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2018-07-16 06:49:39 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2018-07-16 06:49:39 +0000
commit5f9d2c5870c0eaed8447efca0a2d453624cebe7a (patch)
tree4ab834e2c0791a891484a44e2e4d8ae246f635c7 /gcc/fold-const.h
parent5933c6856604f4c83d8e4fadcd4627c1e0e4e500 (diff)
downloadgcc-5f9d2c5870c0eaed8447efca0a2d453624cebe7a.zip
gcc-5f9d2c5870c0eaed8447efca0a2d453624cebe7a.tar.gz
gcc-5f9d2c5870c0eaed8447efca0a2d453624cebe7a.tar.bz2
fold-const.c (int_const_binop_1): Abstract...
* fold-const.c (int_const_binop_1): Abstract... (wide_int_binop): ...wide int code here. (poly_int_binop): ...poly int code here. (tree_binop): ...tree code here. * fold-const.h (wide_int_binop): New. * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop. Remove useless PLUS/MINUS_EXPR case. (zero_nonzero_bits_from_vr): Move wide int code... (zero_nonzero_bits_from_bounds): ...here. (extract_range_from_binary_expr_1): Move mask optimization code... (range_easy_mask_min_max): ...here. * tree-vrp.h (zero_nonzero_bits_from_bounds): New. (range_easy_mask_min_max): New. From-SVN: r262676
Diffstat (limited to 'gcc/fold-const.h')
-rw-r--r--gcc/fold-const.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fold-const.h b/gcc/fold-const.h
index b322575..1b9ccc0 100644
--- a/gcc/fold-const.h
+++ b/gcc/fold-const.h
@@ -100,7 +100,10 @@ extern tree fold_bit_and_mask (tree, tree, enum tree_code,
tree, enum tree_code, tree, tree,
tree, enum tree_code, tree, tree, tree *);
extern tree fold_read_from_constant_string (tree);
-extern tree int_const_binop (enum tree_code, const_tree, const_tree);
+extern bool wide_int_binop (wide_int &res, enum tree_code,
+ const wide_int &arg1, const wide_int &arg2,
+ signop, wi::overflow_type *);
+extern tree int_const_binop (enum tree_code, const_tree, const_tree, int = 1);
#define build_fold_addr_expr(T)\
build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T))
extern tree build_fold_addr_expr_loc (location_t, tree);