IPA ICF: enhance dump about items in a non-singular class.
authorMartin Liska <mliska@suse.cz>
Mon, 10 Jun 2019 07:43:11 +0000 (09:43 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 10 Jun 2019 07:43:11 +0000 (07:43 +0000)
2019-06-10  Martin Liska  <mliska@suse.cz>

* ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
Update coding style.
(sem_item_optimizer::dump_cong_classes):
Print how many items are in a non-singular class.  Improve
coding style.
2019-06-10  Martin Liska  <mliska@suse.cz>

* gcc.dg/ipa/pr68035.c: Update scanned pattern.

From-SVN: r272111

gcc/ChangeLog
gcc/ipa-icf.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/ipa/pr68035.c

index 53547c8df073fc03ba618da3add6ac0496b5fcf7..5c13d42b107b4bae99a25bdaee8932a3473f5af1 100644 (file)
@@ -1,3 +1,11 @@
+2019-06-10  Martin Liska  <mliska@suse.cz>
+
+       * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
+       Update coding style.
+       (sem_item_optimizer::dump_cong_classes):
+       Print how many items are in a non-singular class.  Improve
+       coding style.
+
 2019-06-10  Martin Liska  <mliska@suse.cz>
 
        * value-prof.c (dump_histogram_value): Change dump format.
index 6307407935fb147107ad8d698b0fd142c868b15e..7c486eda7583d564e01e2727348029c736d1fc65 100644 (file)
@@ -2744,20 +2744,20 @@ sem_item_optimizer::build_graph (void)
 void
 sem_item_optimizer::parse_nonsingleton_classes (void)
 {
-  unsigned int init_called_count = 0;
+  unsigned int counter = 0;
 
   for (unsigned i = 0; i < m_items.length (); i++)
     if (m_items[i]->cls->members.length () > 1)
       {
        m_items[i]->init ();
-       init_called_count++;
+       ++counter;
       }
 
   if (dump_file)
-    fprintf (dump_file, "Init called for %u items (%.2f%%).\n",
-            init_called_count,
-            m_items.length () ? 100.0f * init_called_count / m_items.length ()
-                              : 0.0f);
+    {
+      float f = m_items.length () ? 100.0f * counter / m_items.length () : 0.0f;
+      fprintf (dump_file, "Init called for %u items (%.2f%%).\n", counter, f);
+    }
 }
 
 /* Equality function for semantic items is used to subdivide existing
@@ -3274,13 +3274,9 @@ sem_item_optimizer::dump_cong_classes (void)
   if (!dump_file)
     return;
 
-  fprintf (dump_file,
-          "Congruence classes: %u (unique hash values: %lu), with total: "
-          "%u items\n", m_classes_count,
-          (unsigned long) m_classes.elements (), m_items.length ());
-
   /* Histogram calculation.  */
   unsigned int max_index = 0;
+  unsigned int single_element_classes = 0;
   unsigned int* histogram = XCNEWVEC (unsigned int, m_items.length () + 1);
 
   for (hash_table<congruence_class_hash>::iterator it = m_classes.begin ();
@@ -3292,21 +3288,25 @@ sem_item_optimizer::dump_cong_classes (void)
 
        if (c > max_index)
          max_index = c;
+
+       if (c == 1)
+         ++single_element_classes;
       }
 
+  fprintf (dump_file,
+          "Congruence classes: %lu with total: %u items (in a non-singular "
+          "class: %u)\n", (unsigned long) m_classes.elements (),
+          m_items.length (), m_items.length () - single_element_classes);
   fprintf (dump_file,
           "Class size histogram [num of members]: number of classe number "
           "of classess\n");
-
   for (unsigned int i = 0; i <= max_index; i++)
     if (histogram[i])
-      fprintf (dump_file, "[%u]: %u classes\n", i, histogram[i]);
-
-  fprintf (dump_file, "\n\n");
+      fprintf (dump_file, "%6u: %6u\n", i, histogram[i]);
 
   if (dump_flags & TDF_DETAILS)
-  for (hash_table<congruence_class_hash>::iterator it = m_classes.begin ();
-       it != m_classes.end (); ++it)
+    for (hash_table<congruence_class_hash>::iterator it = m_classes.begin ();
+        it != m_classes.end (); ++it)
       {
        fprintf (dump_file, "  group: with %u classes:\n",
                 (*it)->classes.length ());
index bbb6b0b90cb39f4ed9c5166883a36dbf3b06331d..b1f8b3030843f6d880840fa31c0875f2bfc0f1ed 100644 (file)
@@ -1,3 +1,7 @@
+2019-06-10  Martin Liska  <mliska@suse.cz>
+
+       * gcc.dg/ipa/pr68035.c: Update scanned pattern.
+
 2019-06-10  Iain Sandoe  <iain@sandoe.co.uk>
 
        * gcc.dg/attr-copy-6.c: Require alias support.
index a8cb77971f6bc51cac7dec0556b91c8934430636..f6adad9f24dc25c0d5f8848cef09b2f12d8ce39b 100644 (file)
@@ -105,4 +105,4 @@ list_49,
 };
 
 
-/* { dg-final { scan-ipa-dump "unique hash values: 51" "icf"  } } */
+/* { dg-final { scan-ipa-dump "Congruence classes: 51" "icf"  } } */