diff options
author | Jan Hubicka <jh@suse.cz> | 2021-11-14 18:49:15 +0100 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2021-11-14 18:49:15 +0100 |
commit | 64f3e71c302b4a13e61656ee509e7050b9bce978 (patch) | |
tree | bb221243513a5106c4390058d808a46342bc7de2 /libcpp/charset.c | |
parent | 8a601f9bc45f9faaa91f18d58ba71b141acff701 (diff) | |
download | gcc-64f3e71c302b4a13e61656ee509e7050b9bce978.zip gcc-64f3e71c302b4a13e61656ee509e7050b9bce978.tar.gz gcc-64f3e71c302b4a13e61656ee509e7050b9bce978.tar.bz2 |
Extend modref to track kills
This patch adds kill tracking to ipa-modref. This is representd by array
of accesses to memory locations that are known to be overwritten by the
function.
gcc/ChangeLog:
2021-11-14 Jan Hubicka <hubicka@ucw.cz>
* ipa-modref-tree.c (modref_access_node::update_for_kills): New
member function.
(modref_access_node::merge_for_kills): Likewise.
(modref_access_node::insert_kill): Likewise.
* ipa-modref-tree.h (modref_access_node::update_for_kills,
modref_access_node::merge_for_kills, modref_access_node::insert_kill):
Declare.
(modref_access_node::useful_for_kill): New member function.
* ipa-modref.c (modref_summary::useful_p): Release useless kills.
(lto_modref_summary): Add kills.
(modref_summary::dump): Dump kills.
(record_access): Add mdoref_access_node parameter.
(record_access_lto): Likewise.
(merge_call_side_effects): Merge kills.
(analyze_call): Add ALWAYS_EXECUTED param and pass it around.
(struct summary_ptrs): Add always_executed filed.
(analyze_load): Update.
(analyze_store): Update; record kills.
(analyze_stmt): Add always_executed; record kills in clobbers.
(analyze_function): Track always_executed.
(modref_summaries::duplicate): Duplicate kills.
(update_signature): Release kills.
* ipa-modref.h (struct modref_summary): Add kills.
* tree-ssa-alias.c (alias_stats): Add kill stats.
(dump_alias_stats): Dump kill stats.
(store_kills_ref_p): Break out from ...
(stmt_kills_ref_p): Use it; handle modref info based kills.
gcc/testsuite/ChangeLog:
2021-11-14 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/tree-ssa/modref-dse-3.c: New test.
Diffstat (limited to 'libcpp/charset.c')
0 files changed, 0 insertions, 0 deletions