Add prange entries in gimple-range-op.cc.

gcc/ChangeLog:

	* gimple-range-op.cc (class cfn_pass_through_arg1): Add overloads
	for prange operations.
	(cfn_strlen): Same.
This commit is contained in:
Aldy Hernandez 2024-03-20 11:27:21 +01:00
parent ff306c77b7
commit 6cec31d44a

View file

@ -311,12 +311,37 @@ public:
r = lh;
return true;
}
virtual bool fold_range (prange &r, tree, const prange &lh,
const prange &, relation_trio) const
{
r = lh;
return true;
}
virtual bool op1_range (irange &r, tree, const irange &lhs,
const irange &, relation_trio) const
{
r = lhs;
return true;
}
virtual bool op1_range (prange &r, tree, const prange &lhs,
const prange &, relation_trio) const
{
r = lhs;
return true;
}
virtual bool pointers_handled_p (range_op_dispatch_type type,
unsigned dispatch) const
{
switch (type)
{
case DISPATCH_FOLD_RANGE:
return dispatch == RO_PPP;
case DISPATCH_OP1_RANGE:
return dispatch == RO_PPP;
default:
return true;
}
}
} op_cfn_pass_through_arg1;
// Implement range operator for CFN_BUILT_IN_SIGNBIT.
@ -1107,6 +1132,17 @@ public:
r.set (type, wi::zero (TYPE_PRECISION (type)), max - 2);
return true;
}
virtual bool pointers_handled_p (range_op_dispatch_type type,
unsigned dispatch) const
{
switch (type)
{
case DISPATCH_FOLD_RANGE:
return dispatch == RO_IPI;
default:
return true;
}
}
} op_cfn_strlen;