On Fri, 19 Nov 2021, Jan Hubicka wrote: > Hi, > this patch removes 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. OK?
OK. > gcc/ChangeLog: > > 2021-11-19 Jan Hubicka <hubi...@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 <hubi...@ucw.cz> > > * gcc.dg/tree-ssa/modref-dse-6.c: New test. > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-6.c > b/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-6.c > new file mode 100644 > index 00000000000..d1e45a893ad > --- /dev/null > +++ b/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-6.c > @@ -0,0 +1,23 @@ > +/* { dg-do compile } */ > +/* { dg-options "-O2 -fdump-tree-optimized" } */ > +int > +main() > +{ > + int a,b; > + __attribute__ ((noinline)) > + void kill_me() > + { > + a=1234; > + b=2234; > + } > + a=0; > + b=1234; > + __attribute__ ((noinline)) > + int reta() > + { > + return a; > + } > + return reta(); > +} > +/* { dg-final { scan-tree-dump-not "kill_me" "optimized" } } */ > +/* { dg-final { scan-tree-dump-not "1234" "optimized" } } */ > diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c > index 02bbc87b597..cd6a0b2f67b 100644 > --- a/gcc/tree-ssa-alias.c > +++ b/gcc/tree-ssa-alias.c > @@ -2755,7 +2755,7 @@ ref_maybe_used_by_call_p_1 (gcall *call, ao_ref *ref, > bool tbaa_p) > > callee = gimple_call_fndecl (call); > > - if (!gimple_call_chain (call) && callee != NULL_TREE) > + if (callee != NULL_TREE) > { > struct cgraph_node *node = cgraph_node::get (callee); > /* We can not safely optimize based on summary of calle if it does > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; GF: Ivo Totev; HRB 36809 (AG Nuernberg)