aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2021-11-08 07:52:45 +0100
committerJan Hubicka <hubicka@ucw.cz>2021-11-08 07:52:45 +0100
commit1f3a33633dd06a8e4861180ab20c9136361c69e6 (patch)
treed25e2b725823cf4a6055b9844dd82d65809425e7 /gcc/tree-vectorizer.h
parent14e355df30534b1d07018e2934948a09fa5a8e52 (diff)
downloadgcc-1f3a33633dd06a8e4861180ab20c9136361c69e6.zip
gcc-1f3a33633dd06a8e4861180ab20c9136361c69e6.tar.gz
gcc-1f3a33633dd06a8e4861180ab20c9136361c69e6.tar.bz2
Add loads/stores relative to static chain in ipa-modref
Adds tracking of accesses relative to static chain into modref load/stores analysis. This helps some Fortran benchmarks however it is still quite limited. One problem is that we never discover functions with nested functions as const, pure or not accessing global memory because it contains __builtin_dward_cfa call which we believe to be non-pure. Bootstrapped/regtested x86_64-linux. Plan to commit it tomorrow if there are no complains and once periodic testers picks today modref changes. Honza gcc/ChangeLog: * ipa-modref-tree.h (enum modref_special_parms): New enum. (struct modref_access_node): update for special parms. (struct modref_ref_node): Likewise. (struct modref_parm_map): Likewise. (struct modref_tree): Likewise. * ipa-modref.c (dump_access): Likewise. (get_access): Detect static chain. (parm_map_for_arg): Take tree as arg instead of stmt and index. (merge_call_side_effects): Compute map for static chain. (process_fnspec): Update. (struct escape_point): Remove retslot_arg and static_chain_arg. (analyze_parms): Update. (compute_parm_map): Update. (propagate_unknown_call): Update. (modref_propagate_in_scc): Update. (modref_merge_call_site_flags): Update. (ipa_merge_modref_summary_after_inlining): Update. * tree-ssa-alias.c (modref_may_conflict): Handle static chain. * ipa-modref-tree.c (test_merge): Update. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/modref-12.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions