tree-vrp.c (value_range_base::dump): Dump type.
authorAldy Hernandez <aldyh@redhat.com>
Tue, 13 Nov 2018 15:46:46 +0000 (15:46 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Tue, 13 Nov 2018 15:46:46 +0000 (15:46 +0000)
* tree-vrp.c (value_range_base::dump): Dump type.
Do not use INF nomenclature for 1-bit types.
(dump_value_range): Group all variants to common dumping code.
(debug): New overloaded functions for value_ranges.
(value_range_base::dump): Remove no argument version.
(value_range::dump): Same.

testsuite/
* gcc.dg/tree-ssa/pr64130.c: Adjust for new value_range pretty
printer.
* gcc.dg/tree-ssa/vrp92.c: Same.

From-SVN: r266077

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr64130.c
gcc/testsuite/gcc.dg/tree-ssa/vrp92.c
gcc/tree-vrp.c
gcc/tree-vrp.h

index f9b23f924ae8184d8b84a6925ead823ae933843e..670b1623ed8487a1bafdeb1888a7cc230a3b50b0 100644 (file)
@@ -1,3 +1,12 @@
+2018-11-13  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (value_range_base::dump): Dump type.
+       Do not use INF nomenclature for 1-bit types.
+       (dump_value_range): Group all variants to common dumping code.
+       (debug): New overloaded functions for value_ranges.
+       (value_range_base::dump): Remove no argument version.
+       (value_range::dump): Same.
+
 2018-11-13  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/87931
index e61f978798ec64be3ed6a56e36df09f29fe3ca33..979f5978c494146702379731af067f6d44dd811e 100644 (file)
@@ -1,3 +1,9 @@
+2018-11-12  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gcc.dg/tree-ssa/pr64130.c: Adjust for new value_range pretty
+       printer.
+       * gcc.dg/tree-ssa/vrp92.c: Same.
+
 2018-11-13  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/87931
index e068765e2fca6f05ab39722df58529ae880e11fa..28ffbb76da8827f891ecd3905f299d6e351df55a 100644 (file)
@@ -15,6 +15,6 @@ int funsigned2 (uint32_t a)
   return (-1 * 0x1ffffffffL) / a == 0;
 }
 
-/* { dg-final { scan-tree-dump ": \\\[2, 8589934591\\\]" "evrp" } } */
-/* { dg-final { scan-tree-dump ": \\\[-8589934591, -2\\\]" "evrp" } } */
+/* { dg-final { scan-tree-dump "int \\\[2, 8589934591\\\]" "evrp" } } */
+/* { dg-final { scan-tree-dump "int \\\[-8589934591, -2\\\]" "evrp" } } */
 
index 5a2dbf0108a896bf002273a6ef28edd42bc5c27d..66d74e9b5e9853ccd73b32db9da39d1cc320c575 100644 (file)
@@ -18,5 +18,5 @@ int foo (int i, int j)
   return j;
 }
 
-/* { dg-final { scan-tree-dump "res_.: \\\[1, 1\\\]" "vrp1" } } */
+/* { dg-final { scan-tree-dump "res_.: int \\\[1, 1\\\]" "vrp1" } } */
 /* { dg-final { scan-tree-dump-not "Threaded" "vrp1" } } */
index 27bc1769f110f321ac75a67b41c6c605eb692d14..f498386e8eb0144712235163858542ae76b9ba24 100644 (file)
@@ -365,8 +365,6 @@ value_range_base::type () const
   return TREE_TYPE (min ());
 }
 
-/* Dump value range to FILE.  */
-
 void
 value_range_base::dump (FILE *file) const
 {
@@ -374,21 +372,26 @@ value_range_base::dump (FILE *file) const
     fprintf (file, "UNDEFINED");
   else if (m_kind == VR_RANGE || m_kind == VR_ANTI_RANGE)
     {
-      tree type = TREE_TYPE (min ());
+      tree ttype = type ();
+
+      print_generic_expr (file, ttype);
+      fprintf (file, " ");
 
       fprintf (file, "%s[", (m_kind == VR_ANTI_RANGE) ? "~" : "");
 
-      if (INTEGRAL_TYPE_P (type)
-         && !TYPE_UNSIGNED (type)
-         && vrp_val_is_min (min ()))
+      if (INTEGRAL_TYPE_P (ttype)
+         && !TYPE_UNSIGNED (ttype)
+         && vrp_val_is_min (min ())
+         && TYPE_PRECISION (ttype) != 1)
        fprintf (file, "-INF");
       else
        print_generic_expr (file, min ());
 
       fprintf (file, ", ");
 
-      if (INTEGRAL_TYPE_P (type)
-         && vrp_val_is_max (max ()))
+      if (INTEGRAL_TYPE_P (ttype)
+         && vrp_val_is_max (max ())
+         && TYPE_PRECISION (ttype) != 1)
        fprintf (file, "+INF");
       else
        print_generic_expr (file, max ());
@@ -398,7 +401,7 @@ value_range_base::dump (FILE *file) const
   else if (varying_p ())
     fprintf (file, "VARYING");
   else
-    fprintf (file, "INVALID RANGE");
+    gcc_unreachable ();
 }
 
 void
@@ -425,17 +428,45 @@ value_range::dump (FILE *file) const
 }
 
 void
-value_range_base::dump () const
+dump_value_range (FILE *file, const value_range *vr)
 {
-  dump_value_range (stderr, this);
-  fprintf (stderr, "\n");
+  if (!vr)
+    fprintf (file, "[]");
+  else
+    vr->dump (file);
 }
 
 void
-value_range::dump () const
+dump_value_range (FILE *file, const value_range_base *vr)
+{
+  if (!vr)
+    fprintf (file, "[]");
+  else
+    vr->dump (file);
+}
+
+DEBUG_FUNCTION void
+debug (const value_range_base *vr)
+{
+  dump_value_range (stderr, vr);
+}
+
+DEBUG_FUNCTION void
+debug (const value_range_base &vr)
+{
+  dump_value_range (stderr, &vr);
+}
+
+DEBUG_FUNCTION void
+debug (const value_range *vr)
+{
+  dump_value_range (stderr, vr);
+}
+
+DEBUG_FUNCTION void
+debug (const value_range &vr)
 {
-  dump_value_range (stderr, this);
-  fprintf (stderr, "\n");
+  dump_value_range (stderr, &vr);
 }
 
 /* Return true if the SSA name NAME is live on the edge E.  */
@@ -2165,43 +2196,6 @@ extract_range_from_unary_expr (value_range_base *vr,
   return;
 }
 
-/* Debugging dumps.  */
-
-void
-dump_value_range (FILE *file, const value_range *vr)
-{
-  if (!vr)
-    fprintf (file, "[]");
-  else
-    vr->dump (file);
-}
-
-void
-dump_value_range (FILE *file, const value_range_base *vr)
-{
-  if (!vr)
-    fprintf (file, "[]");
-  else
-    vr->dump (file);
-}
-
-/* Dump value range VR to stderr.  */
-
-DEBUG_FUNCTION void
-debug_value_range (const value_range_base *vr)
-{
-  dump_value_range (stderr, vr);
-}
-
-/* Dump value range VR to stderr.  */
-
-DEBUG_FUNCTION void
-debug_value_range (const value_range *vr)
-{
-  dump_value_range (stderr, vr);
-}
-
-
 /* Given a COND_EXPR COND of the form 'V OP W', and an SSA name V,
    create a new SSA name N and return the assertion assignment
    'N = ASSERT_EXPR <V, V OP W>'.  */
index 348fa4f0e7bc67ca252ac0163a70cb8a07d56391..287860399c4d19521cd9ab6793b085d06ac1c3c5 100644 (file)
@@ -71,9 +71,7 @@ public:
   void set_and_canonicalize (enum value_range_kind, tree, tree);
   bool zero_p () const;
   bool singleton_p (tree *result = NULL) const;
-
   void dump (FILE *) const;
-  void dump () const;
 
 protected:
   void check ();
@@ -139,7 +137,6 @@ class GTY((user)) value_range : public value_range_base
   void deep_copy (const value_range *);
   void set_and_canonicalize (enum value_range_kind, tree, tree, bitmap = NULL);
   void dump (FILE *) const;
-  void dump () const;
 
  private:
   /* Deep-copies bitmap argument.  */