https://gcc.gnu.org/g:6cec31d44a426fa031ca07266fd2723b0038de83
commit r15-164-g6cec31d44a426fa031ca07266fd2723b0038de83 Author: Aldy Hernandez <al...@redhat.com> Date: Wed Mar 20 11:27:21 2024 +0100 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. Diff: --- gcc/gimple-range-op.cc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gcc/gimple-range-op.cc b/gcc/gimple-range-op.cc index 587de186db2..55dfbb23ce2 100644 --- a/gcc/gimple-range-op.cc +++ b/gcc/gimple-range-op.cc @@ -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;