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;

Reply via email to