https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89474

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For the former issue, I'd go with:
--- gcc/config/i386/i386.c.jj   2019-02-22 23:02:47.805117610 +0100
+++ gcc/config/i386/i386.c      2019-02-25 12:57:18.238284322 +0100
@@ -2835,7 +2835,14 @@ remove_partial_avx_dependency (void)
            continue;

          if (!v4sf_const0)
-           v4sf_const0 = gen_reg_rtx (V4SFmode);
+           {
+             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 ();
+             v4sf_const0 = gen_reg_rtx (V4SFmode);
+           }

          /* Convert PARTIAL_XMM_UPDATE_TRUE insns, DF -> SF, SF -> DF,
             SI -> SF, SI -> DF, DI -> SF, DI -> DF, to vec_dup and
@@ -2883,12 +2890,6 @@ remove_partial_avx_dependency (void)

   if (v4sf_const0)
     {
-      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 ();
-
       /* (Re-)discover loops so that bb->loop_father can be used in the
         analysis below.  */
       loop_optimizer_init (AVOID_CFG_MODIFICATIONS);

Reply via email to