diff mbox series

Remove MD problem from STV

Message ID alpine.LSU.2.20.1908281002030.32458@zhemvz.fhfr.qr
State New
Headers show
Series Remove MD problem from STV | expand

Commit Message

Richard Biener Aug. 28, 2019, 8:14 a.m. UTC
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  <rguenther@suse.de>

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

Comments

Uros Bizjak Aug. 28, 2019, 9:29 a.m. UTC | #1
On Wed, Aug 28, 2019 at 10:14 AM Richard Biener <rguenther@suse.de> wrote:
>
>
> 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  <rguenther@suse.de>
>
>         * config/i386/i386-features.c (convert_scalars_to_vector): Do not
>         add the MD problem.

OK.

Thanks,
Uros.

> 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.  */
diff mbox series

Patch

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.  */