Add dump prints when execute_fixup_cfg removes a write only var store.
authorAndrew Pinski <apinski@marvell.com>
Sat, 16 Oct 2021 02:30:55 +0000 (02:30 +0000)
committerAndrew Pinski <apinski@marvell.com>
Thu, 21 Oct 2021 08:18:58 +0000 (08:18 +0000)
While debugging PR 102703, I found it was hard to figure out where
the store was being removed as there was no pass which was outputting
why the store was removed.
This adds to execute_fixup_cfg the output.
Also note most of removals happen when execute_fixup_cfg is called
from the inliner.

gcc/ChangeLog:

* tree-cfg.c (execute_fixup_cfg): Output when the statement
is removed when it is a write only var.

gcc/tree-cfg.c

index 4b4b0b5..b78e456 100644 (file)
@@ -9737,6 +9737,13 @@ execute_fixup_cfg (void)
                  && (TREE_STATIC (lhs) || DECL_EXTERNAL (lhs))
                  && varpool_node::get (lhs)->writeonly)
                {
+                 if (dump_file && (dump_flags & TDF_DETAILS))
+                   {
+                     fprintf (dump_file, "Removing statement, writes"
+                              " to write only var:\n");
+                     print_gimple_stmt (dump_file, stmt, 0,
+                                        TDF_VOPS|TDF_MEMSYMS);
+                   }
                  unlink_stmt_vdef (stmt);
                  gsi_remove (&gsi, true);
                  release_defs (stmt);