> On September 26, 2020 12:04:24 AM GMT+02:00, Jan Hubicka <hubi...@ucw.cz> > wrote: > >Hi, > >while adding check for gimple_clobber I reversed the return value > >so instead of ignoring the statement ipa-modref gives up. Fixed thus. > >This explains the drop between originally reported disambinguations > >stats and ones I got later. > > I don't think you can ignore clobbers. They are barriers for code motion. modref is (before and after patch) about 1.4% of the WPA time (2s). This is pretty the much cost of a single pass over the symbol table (other non-busy IPA passes takes about the same, ipa-comdat is fater with 0.7%).
The iteration of dataflow happens only on non-trivial strongly connected components and at least for GCC alway terminates in 3 iterations (to trigger more one needs to function with many params with operation like shifting every param right. > > Richard. > > > >Bootstrapped/regtested x86_64-linux. > > > >gcc/ChangeLog: > > > >2020-09-25 Jan Hubicka <hubi...@ucw.cz> > > > > * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber. > > > >diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c > >index aa6929ff010..44b844b90db 100644 > >--- a/gcc/ipa-modref.c > >+++ b/gcc/ipa-modref.c > >@@ -658,7 +658,7 @@ analyze_stmt (modref_summary *summary, gimple > >*stmt, bool ipa) > > { > > /* There is no need to record clobbers. */ > > if (gimple_clobber_p (stmt)) > >- return false; > >+ return true; > > /* Analyze all loads and stores in STMT. */ > > walk_stmt_load_store_ops (stmt, summary, > > analyze_load, analyze_store); >