aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.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/tree-vrp.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/tree-vrp.h')
-rw-r--r--gcc/tree-vrp.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-vrp.h b/gcc/tree-vrp.h
index 608ca56..946e26e 100644
--- a/gcc/tree-vrp.h
+++ b/gcc/tree-vrp.h
@@ -112,8 +112,14 @@ extern bool range_int_cst_p (value_range *);
extern int operand_less_p (tree, tree);
extern bool find_case_label_range (gswitch *, tree, tree, size_t *, size_t *);
extern bool find_case_label_index (gswitch *, size_t, tree, size_t *);
+extern void zero_nonzero_bits_from_bounds (signop, const wide_int&,
+ const wide_int&, wide_int *,
+ wide_int *);
extern bool zero_nonzero_bits_from_vr (const tree, value_range *,
wide_int *, wide_int *);
+extern bool range_easy_mask_min_max (tree_code,
+ const wide_int &lb, const wide_int &ub,
+ const wide_int &mask);
extern bool overflow_comparison_p (tree_code, tree, tree, bool, tree *);
extern bool range_int_cst_singleton_p (value_range *);
extern int value_inside_range (tree, tree, tree);