]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
even more range_of tweaks devel/ssa-range
authorAndrew Macleod <amacleod@gcc.gnu.org>
Tue, 10 Sep 2019 13:11:19 +0000 (13:11 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Tue, 10 Sep 2019 13:11:19 +0000 (13:11 +0000)
From-SVN: r275590

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

index a0ab151719206f1bd9db89aeed894bf3bcab8c42..d8720cd35f727d3948efcc5cf88df51fb7f42b8d 100644 (file)
@@ -480,14 +480,12 @@ static irange
 get_tree_range (tree expr, tree name, irange *range_of_name)
 {
   static stmt_ranger sr;
-  if (expr != name || !range_of_name)
-    {
-      irange r;
-      gcc_assert (sr.range_of_expr (r, expr));
-      return r;
-    }
+  if (expr == name && range_of_name)
+    return *range_of_name;
 
-  return *range_of_name;
+  irange r;
+  gcc_assert (sr.range_of_expr (r, expr));
+  return r;
 }
 
 // Calculate the range for NAME if the lhs of statement S has the range LHS.
index 88603a698bc9ac9ed3c8a8540f99becec433309b..6b44470caeb5db588c1b3a44888320627d5fe4b9 100644 (file)
@@ -267,9 +267,7 @@ stmt_ranger::range_of_phi (irange &r, gphi *phi, tree name,
 
 bool
 stmt_ranger::range_of_call (irange &r, gcall *call, tree name ATTRIBUTE_UNUSED,
-                           const irange *name_range ATTRIBUTE_UNUSED,
-                           gimple *eval_from ATTRIBUTE_UNUSED,
-                           edge on_edge ATTRIBUTE_UNUSED)
+                           const irange *name_range ATTRIBUTE_UNUSED)
 {
   tree type = gimple_call_return_type (call);
   if (!irange::supports_type_p (type))
@@ -295,7 +293,7 @@ stmt_ranger::range_of_call (irange &r, gcall *call, tree name ATTRIBUTE_UNUSED,
 
 bool
 stmt_ranger::range_of_cond_expr  (irange &r, gassign *s, tree name,
-                                 const irange *name_range, gimple *eval_from)
+                                 const irange *name_range)
 {
   irange cond_range, range1, range2;
   tree cond = gimple_assign_rhs1 (s);
@@ -308,23 +306,20 @@ stmt_ranger::range_of_cond_expr  (irange &r, gassign *s, tree name,
   if (!irange::supports_type_p (TREE_TYPE (op1)))
     return false;
 
-  if (!eval_from)
-    eval_from = s;
-
   if (name == cond)
     cond_range = *name_range;
   else
-    gcc_assert (range_of_expr (cond_range, cond, eval_from));
+    gcc_assert (range_of_expr (cond_range, cond, s));
 
   if (name == op1)
     range1 = *name_range;
   else
-    gcc_assert (range_of_expr (range1, op1, eval_from));
+    gcc_assert (range_of_expr (range1, op1, s));
 
   if (name == op2)
     range2 = *name_range;
   else
-    gcc_assert (range_of_expr (range2, op2, eval_from));
+    gcc_assert (range_of_expr (range2, op2, s));
 
   if (cond_range.singleton_p ())
     {
index 121b1499505eeedc11b107c3ef5298dbaee9bf01..a64b8710ff5233028c3e3cb9f6b750da25d9f930 100644 (file)
@@ -59,12 +59,10 @@ protected:
                             const irange *name_range = NULL);
 
   bool range_of_call (irange &r, gcall *call, tree name = NULL_TREE,
-                     const irange *name_range = NULL,
-                     gimple *eval_from = NULL, edge on_edge = NULL);
+                     const irange *name_range = NULL);
 
   bool range_of_cond_expr (irange &r, gassign* call, tree name = NULL_TREE,
-                          const irange *name_range = NULL,
-                          gimple *eval_from = NULL);
+                          const irange *name_range = NULL);
 };
 
 class ssa_ranger : public stmt_ranger