> 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);
> 

Reply via email to