diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2019-06-13 09:46:00 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2019-06-13 09:46:00 +0000 |
commit | fa8ba8b84cf4f1caf581b09d808d6e57b1ff2843 (patch) | |
tree | 974fdf46b52abb2f7b4de4981329e8f625215904 /gcc/tree-vrp.h | |
parent | a7b183bf22c7c57fc0d8851f84db6fff694ba5f8 (diff) | |
download | gcc-fa8ba8b84cf4f1caf581b09d808d6e57b1ff2843.zip gcc-fa8ba8b84cf4f1caf581b09d808d6e57b1ff2843.tar.gz gcc-fa8ba8b84cf4f1caf581b09d808d6e57b1ff2843.tar.bz2 |
Revamp value_range::may_contain_p.
From-SVN: r272238
Diffstat (limited to 'gcc/tree-vrp.h')
-rw-r--r-- | gcc/tree-vrp.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/tree-vrp.h b/gcc/tree-vrp.h index 62d7286..4ec974f 100644 --- a/gcc/tree-vrp.h +++ b/gcc/tree-vrp.h @@ -97,6 +97,9 @@ protected: friend void gt_ggc_mx (value_range_base *&); friend void gt_pch_nx (value_range_base &); friend void gt_pch_nx (value_range_base *, gt_pointer_operator, void *); + +private: + int value_inside_range (tree) const; }; /* Note value_range cannot currently be used with GC memory, only @@ -254,7 +257,6 @@ struct assert_info extern void register_edge_assert_for (tree, edge, enum tree_code, tree, tree, vec<assert_info> &); extern bool stmt_interesting_for_vrp (gimple *); -extern bool range_includes_p (const value_range_base *, HOST_WIDE_INT); extern bool infer_value_range (gimple *, tree, tree_code *, tree *); extern bool vrp_bitmap_equal_p (const_bitmap, const_bitmap); @@ -267,7 +269,6 @@ extern int compare_values_warnv (tree, tree, bool *); extern int operand_less_p (tree, tree); extern bool vrp_val_is_min (const_tree); extern bool vrp_val_is_max (const_tree); -extern int value_inside_range (tree, tree, tree); extern tree vrp_val_min (const_tree); extern tree vrp_val_max (const_tree); @@ -300,7 +301,13 @@ extern value_range_kind determine_value_range (tree, wide_int *, wide_int *); inline bool range_includes_zero_p (const value_range_base *vr) { - return range_includes_p (vr, 0); + if (vr->undefined_p ()) + return false; + + if (vr->varying_p ()) + return true; + + return vr->may_contain_p (build_zero_cst (vr->type ())); } #endif /* GCC_TREE_VRP_H */ |