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