]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
range_of_grange tweaks
authorAndrew Macleod <amacleod@gcc.gnu.org>
Mon, 9 Sep 2019 14:31:27 +0000 (14:31 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Mon, 9 Sep 2019 14:31:27 +0000 (14:31 +0000)
From-SVN: r275519

gcc/ssa-range.cc
gcc/ssa-range.h

index a127384b2eab328f54e9ac21fe81cfa0396c975a..e7b8399b277e83c19bd2811fece2da25eb4dd04a 100644 (file)
@@ -165,7 +165,7 @@ stmt_ranger::range_of_stmt_with_range (irange &r, gimple *s, tree name,
                                       const irange &name_range)
 {
   if (is_a<grange *> (s))
-    return range_of_grange (r, as_a<grange *> (s), name, name_range);
+    return range_of_grange (r, as_a<grange *> (s), name, &name_range);
   if (is_a<gphi *>(s))
     return range_of_phi (r, as_a<gphi *> (s), name, &name_range);
   if (is_a<gcall *>(s))
@@ -199,36 +199,13 @@ stmt_ranger::range_of_grange_core (irange &r, grange *s, bool valid,
   return true;
 }
 
-// Calculate a range for range_op statement S and return it in R.  If a range
-// cannot be calculated, return false.  
-
-bool
-stmt_ranger::range_of_grange (irange &r, grange *s)
-{
-  irange range1, range2;
-  bool res = true;
-  gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
-
-  tree op1 = gimple_range_operand1 (s);
-  tree op2 = gimple_range_operand2 (s);
-
-  // Calculate a range for operand 1.
-  res = range_of_expr (range1, op1, s);
-
-  // Calculate a result for op2 if it is needed.
-  if (res && op2)
-    res = range_of_expr (range2, op2, s);
-
-  return range_of_grange_core (r, s, res, range1, range2);
-}
-
 // Calculate a range for range_op statement S and return it in R.  If any
 // operand matches NAME, replace it with NAME_RANGE.  If a range
 // cannot be calculated, return false.  
 
 bool
 stmt_ranger::range_of_grange (irange &r, grange *s, tree name,
-                             const irange &name_range)
+                             const irange *name_range)
 {
   irange range1, range2;
   bool res = true;
@@ -239,7 +216,7 @@ stmt_ranger::range_of_grange (irange &r, grange *s, tree name,
 
   // Calculate a range for operand 1.
   if (op1 == name)
-    range1 = name_range;
+    range1 = *name_range;
   else
     res = range_of_expr (range1, op1, s);
 
@@ -247,7 +224,7 @@ stmt_ranger::range_of_grange (irange &r, grange *s, tree name,
   if (res && op2)
     {
       if (op2 == name)
-       range2 = name_range;
+       range2 = *name_range;
       else
        res = range_of_expr (range2, op2, s);
     }
@@ -255,30 +232,6 @@ stmt_ranger::range_of_grange (irange &r, grange *s, tree name,
   return range_of_grange_core (r, s, res, range1, range2);
 }
 
-// Calculate a range for range_op statement S and return it in R.  Evaluate
-// the statement as if it immediately preceeded stmt EVAL_FROM.  If a range
-// cannot be calculated, return false.  
-
-bool
-stmt_ranger::range_of_grange (irange &r, grange *s, gimple *eval_from)
-{
-  irange range1, range2;
-  bool res = true;
-  gcc_checking_assert (irange::supports_type_p (gimple_expr_type (s)));
-
-  tree op1 = gimple_range_operand1 (s);
-  tree op2 = gimple_range_operand2 (s);
-
-  // Calculate a range for operand 1.
-  res = range_of_expr (range1, op1, eval_from);
-
-  // Calculate a result for op2 if it is needed.
-  if (res && op2)
-    res = range_of_expr (range2, op2, eval_from);
-
-  return range_of_grange_core (r, s, res, range1, range2);
-}
-
 
 // Calculate a range for phi statement S and return it in R. 
 // If NAME is non-null, replace any occurences of NAME in arguments with
@@ -312,8 +265,8 @@ stmt_ranger::range_of_phi (irange &r, gphi *phi, tree name,
         continue;
       if (name == arg)
         arg_range = *name_range;
-      else if (valid_range_ssa_p (arg) && !eval_from)
-      gcc_assert (range_of_expr (arg_range, arg, eval_from));
+      else 
+       gcc_assert (range_of_expr (arg_range, arg, eval_from));
 
       r.union_ (arg_range);
       // Once the value reaches varying, stop looking.
index 16c1c0ed05c75a4bc1091b373068648f75241909..b381a4ee09bbbd8c7cb7db01065cd51ea3efa427 100644 (file)
@@ -55,10 +55,8 @@ protected:
   // Calculate a range for a kind of gimple statement .
   bool range_of_grange_core (irange &r, grange *s, bool valid,
                               irange &range1, irange &range2);
-  bool range_of_grange  (irange &r, grange *s);
-  bool range_of_grange  (irange &r, grange *s, tree name,
-                          const irange &name_range);
-  bool range_of_grange  (irange &r, grange *s, gimple *eval_from);
+  bool range_of_grange  (irange &r, grange *s, tree name = NULL_TREE,
+                        const irange *name_range = NULL);
 
   virtual bool range_of_phi (irange &r, gphi *phi, tree name = NULL_TREE,
                             const irange *name_range = NULL,