Commit 5756b6a8 by Aldy Hernandez Committed by Aldy Hernandez

vr-values.c (vr_values::get_value_range): Use value_range API instead of piecing together ranges.

	* vr-values.c (vr_values::get_value_range): Use value_range API
	instead of piecing together ranges.
	(vr_values::update_value_range): Same.

From-SVN: r265953
parent c89af696
2018-11-08 Aldy Hernandez <aldyh@redhat.com> 2018-11-08 Aldy Hernandez <aldyh@redhat.com>
* vr-values.c (vr_values::get_value_range): Use value_range API
instead of piecing together ranges.
(vr_values::update_value_range): Same.
2018-11-08 Aldy Hernandez <aldyh@redhat.com>
* gimple-fold.c (size_must_be_zero_p): Use value_range API instead * gimple-fold.c (size_must_be_zero_p): Use value_range API instead
of performing ad-hoc calculations. of performing ad-hoc calculations.
* tree-ssanames.c (set_range_info): New overloaded function * tree-ssanames.c (set_range_info): New overloaded function
...@@ -121,15 +121,9 @@ vr_values::get_value_range (const_tree var) ...@@ -121,15 +121,9 @@ vr_values::get_value_range (const_tree var)
set_value_range_to_nonnull (vr, TREE_TYPE (sym)); set_value_range_to_nonnull (vr, TREE_TYPE (sym));
else if (INTEGRAL_TYPE_P (TREE_TYPE (sym))) else if (INTEGRAL_TYPE_P (TREE_TYPE (sym)))
{ {
wide_int min, max; get_range_info (var, *vr);
value_range_kind rtype = get_range_info (var, &min, &max); if (vr->undefined_p ())
if (rtype == VR_RANGE || rtype == VR_ANTI_RANGE) vr->set_varying ();
set_value_range (vr, rtype,
wide_int_to_tree (TREE_TYPE (var), min),
wide_int_to_tree (TREE_TYPE (var), max),
NULL);
else
set_value_range_to_varying (vr);
} }
else else
set_value_range_to_varying (vr); set_value_range_to_varying (vr);
...@@ -178,17 +172,10 @@ vr_values::update_value_range (const_tree var, value_range *new_vr) ...@@ -178,17 +172,10 @@ vr_values::update_value_range (const_tree var, value_range *new_vr)
factor that in. */ factor that in. */
if (INTEGRAL_TYPE_P (TREE_TYPE (var))) if (INTEGRAL_TYPE_P (TREE_TYPE (var)))
{ {
wide_int min, max; value_range nr;
value_range_kind rtype = get_range_info (var, &min, &max); value_range_kind rtype = get_range_info (var, nr);
if (rtype == VR_RANGE || rtype == VR_ANTI_RANGE) if (rtype == VR_RANGE || rtype == VR_ANTI_RANGE)
{ new_vr->intersect (&nr);
tree nr_min, nr_max;
nr_min = wide_int_to_tree (TREE_TYPE (var), min);
nr_max = wide_int_to_tree (TREE_TYPE (var), max);
value_range nr;
nr.set_and_canonicalize (rtype, nr_min, nr_max, NULL);
new_vr->intersect (&nr);
}
} }
/* Update the value range, if necessary. */ /* Update the value range, if necessary. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment