[1/4] Add dump prints when execute_fixup_cfg removes a write only var store.
Commit Message
From: Andrew Pinski <apinski@marvell.com>
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 | 7 +++++++
1 file changed, 7 insertions(+)
Comments
On 10/18/2021 10:54 PM, apinski--- via Gcc-patches wrote:
> From: Andrew Pinski <apinski@marvell.com>
>
> 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.
OK
jeff
@@ -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);