On Sat, Jan 30, 2021 at 11:47:24AM +0100, Richard Biener wrote:
> OK, so I'd prefer we simply unset the flag after processing deferred rescan. 
> I clearly misread the function to do that. 

This works too, will bootstrap/regtest it now.

2021-01-29  Jakub Jelinek  <ja...@redhat.com>

        * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
        DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.

        * gcc.target/i386/20051216-1.c: New test.

--- gcc/config/i386/i386-features.c.jj  2021-01-30 10:48:09.788800773 +0100
+++ gcc/config/i386/i386-features.c     2021-01-30 11:50:36.458872261 +0100
@@ -2409,6 +2409,7 @@ remove_partial_avx_dependency (void)
     }
 
   df_process_deferred_rescans ();
+  df_clear_flags (DF_DEFER_INSN_RESCAN);
   bitmap_obstack_release (NULL);
   BITMAP_FREE (convert_bbs);
 
--- gcc/testsuite/gcc.target/i386/20051216-1.c.jj       2021-01-30 
11:41:15.558293070 +0100
+++ gcc/testsuite/gcc.target/i386/20051216-1.c  2021-01-30 11:41:15.558293070 
+0100
@@ -0,0 +1,5 @@
+/* PR rtl-optimization/25432 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -march=cascadelake" } */
+
+#include "../../gcc.c-torture/compile/20051216-1.c"


        Jakub

Reply via email to