STV is interested in DU/UD chains only but for some reason
(since first patch submission) adds MD.  I can't make any sense
of this and in fact I miss the difference between RD and MD.
The only other user of MD is fwprop which says

  /* We use the multiple definitions problem to compute our restricted
     use-def chains.  */

but does not add the chain problems (only md and note), instead it

  /* Walk the dominator tree looking for single reaching definitions
     dominating the uses.  This is similar to how SSA form is built.  */

talking about "reaching definitions" again.  The comments in
df-problems.c do not talk about differences between MD and RD,
the first sentences suggest that MD does not compute anything
if there's just a single reaching definition?  It also doesn't
talk about relative cost of the two problems.  RD doesn't seem
to be used on its own by anyone.

Well.  The following patch removes MD from STV, bootstrapped and
tested on x86_64-unknown-linux-gnu with Westmere arch and STV
forced on.

OK?

Thanks,
Richard.

2019-08-28  Richard Biener  <rguent...@suse.de>

        * config/i386/i386-features.c (convert_scalars_to_vector): Do not
        add the MD problem.

Index: gcc/config/i386/i386-features.c
===================================================================
--- gcc/config/i386/i386-features.c     (revision 274983)
+++ gcc/config/i386/i386-features.c     (working copy)
@@ -1564,7 +1570,6 @@ convert_scalars_to_vector (bool timode_p
   calculate_dominance_info (CDI_DOMINATORS);
   df_set_flags (DF_DEFER_INSN_RESCAN);
   df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN);
-  df_md_add_problem ();
   df_analyze ();
 
   /* Find all instructions we want to convert into vector mode.  */

Reply via email to