mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-23 01:40:32 +08:00
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:
parent
c9357dc13b
commit
e2cfa983c3
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user