tree-vrp.c (extract_range_from_multiplicative_op): Add type parameter and use it instead of guessing expression type from the...

2019-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_multiplicative_op): Add
	type parameter and use it instead of guessing expression
	type from the first operand.
	(extract_range_from_binary_expr): Pass expr_type down.

From-SVN: r273797
This commit is contained in:
Richard Biener 2019-07-25 12:05:19 +00:00 committed by Richard Biener
parent c9357dc13b
commit e2cfa983c3
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2019-07-25 Richard Biener <rguenther@suse.de>
* tree-vrp.c (extract_range_from_multiplicative_op): Add
type parameter and use it instead of guessing expression
type from the first operand.
(extract_range_from_binary_expr): Pass expr_type down.
2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.md (SATrev): Change to code attribute.

View File

@ -1238,7 +1238,7 @@ extract_range_into_wide_ints (const value_range_base *vr,
static void
extract_range_from_multiplicative_op (value_range_base *vr,
enum tree_code code,
enum tree_code code, tree type,
const value_range_base *vr0,
const value_range_base *vr1)
{
@ -1253,7 +1253,6 @@ extract_range_from_multiplicative_op (value_range_base *vr,
gcc_assert (vr0->kind () == VR_RANGE
&& vr0->kind () == vr1->kind ());
tree type = vr0->type ();
wide_int res_lb, res_ub;
wide_int vr0_lb = wi::to_wide (vr0->min ());
wide_int vr0_ub = wi::to_wide (vr0->max ());
@ -1785,7 +1784,7 @@ extract_range_from_binary_expr (value_range_base *vr,
vr->set_varying ();
return;
}
extract_range_from_multiplicative_op (vr, code, &vr0, &vr1);
extract_range_from_multiplicative_op (vr, code, expr_type, &vr0, &vr1);
return;
}
else if (code == RSHIFT_EXPR
@ -1806,7 +1805,8 @@ extract_range_from_binary_expr (value_range_base *vr,
if (vr0.kind () != VR_RANGE || vr0.symbolic_p ())
vr0.set (VR_RANGE, vrp_val_min (expr_type),
vrp_val_max (expr_type));
extract_range_from_multiplicative_op (vr, code, &vr0, &vr1);
extract_range_from_multiplicative_op (vr, code, expr_type,
&vr0, &vr1);
return;
}
else if (code == LSHIFT_EXPR