New modref/ipa_modref optimization passes
authorJan Hubicka <jh@suse.cz>
Sun, 20 Sep 2020 05:25:16 +0000 (07:25 +0200)
committerJan Hubicka <jh@suse.cz>
Sun, 20 Sep 2020 05:27:48 +0000 (07:27 +0200)
commitd119f34c952f8718fdbabc63e2f369a16e92fa07
tree3f1a460afbcfeafd21f63e7d843251c5b07ea9e6
parent2fe5b7d1f66457c637b8bd2543a60a5faff34c40
New modref/ipa_modref optimization passes

2020-09-19  David Cepelik  <d@dcepelik.cz>
    Jan Hubicka  <hubicka@ucw.cz>

* Makefile.in: Add ipa-modref.c and ipa-modref-tree.c.
* alias.c: (reference_alias_ptr_type_1): Export.
* alias.h (reference_alias_ptr_type_1): Declare.
* common.opt (fipa-modref): New.
* gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h
* ipa-modref-tree.c: New file.
* ipa-modref-tree.h: New file.
* ipa-modref.c: New file.
* ipa-modref.h: New file.
* lto-section-in.c (lto_section_name): Add ipa_modref.
* lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref.
* opts.c (default_options_table): Enable ipa-modref at -O1+.
* params.opt (-param=modref-max-bases, -param=modref-max-refs,
-param=modref-max-tests): New params.
* passes.def: Schedule pass_modref and pass_ipa_modref.
* timevar.def (TV_IPA_MODREF): New timevar.
(TV_TREE_MODREF): New timevar.
* tree-pass.h (make_pass_modref): Declare.
(make_pass_ipa_modref): Declare.
* tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h
and ipa-modref.h
(alias_stats): Add modref_use_may_alias, modref_use_no_alias,
modref_clobber_may_alias, modref_clobber_no_alias, modref_tests.
(dump_alias_stats): Dump new stats.
(nonoverlapping_array_refs_p): Fix formating.
(modref_may_conflict): New function.
(ref_maybe_used_by_call_p_1): Use it.
(call_may_clobber_ref_p_1): Use it.
(call_may_clobber_ref_p): Update.
(stmt_may_clobber_ref_p_1): Update.
* tree-ssa-alias.h (call_may_clobber_ref_p_1): Update.
18 files changed:
gcc/Makefile.in
gcc/alias.c
gcc/alias.h
gcc/common.opt
gcc/gengtype.c
gcc/ipa-modref-tree.c [new file with mode: 0644]
gcc/ipa-modref-tree.h [new file with mode: 0644]
gcc/ipa-modref.c [new file with mode: 0644]
gcc/ipa-modref.h [new file with mode: 0644]
gcc/lto-section-in.c
gcc/lto-streamer.h
gcc/opts.c
gcc/params.opt
gcc/passes.def
gcc/timevar.def
gcc/tree-pass.h
gcc/tree-ssa-alias.c
gcc/tree-ssa-alias.h