Use modref even for nested functions in ref_maybe_used_by_call_p_1
commitada63d56beb0e535d35b165b55f85e29a0b36929
authorJan Hubicka <jh@suse.cz>
Fri, 19 Nov 2021 17:09:13 +0000 (19 18:09 +0100)
committerJan Hubicka <jh@suse.cz>
Fri, 19 Nov 2021 17:09:13 +0000 (19 18:09 +0100)
treeb809bfa4f6a962e625f2c437130a2eb60e0ba7d4
parent16137fbb9256ef365dd498d39024eb33de1a4cd8
Use modref even for nested functions in ref_maybe_used_by_call_p_1

Remove test for function not having call chain guarding modref use in
ref_maybe_used_by_call_p_1.  It never made sense since modref treats call chain
accesses explicitly. It was however copied from earlier check for ECF_CONST
(which seems dubious too, but I would like to discuss it independelty).

This enables us to detect that memory pointed to static chain (or parts of it)
are unused by the function.

lto-bootstrapped-regtested all lanugages on x86_64-linux.

gcc/ChangeLog:

2021-11-19  Jan Hubicka  <hubicka@ucw.cz>

* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not guard modref
by !gimple_call_chain.

gcc/testsuite/ChangeLog:

2021-11-19  Jan Hubicka  <hubicka@ucw.cz>

* gcc.dg/tree-ssa/modref-dse-6.c: New test.
gcc/testsuite/gcc.dg/tree-ssa/modref-dse-6.c [new file with mode: 0644]
gcc/tree-ssa-alias.c