On January 29, 2021 9:19:26 PM GMT+01:00, Jakub Jelinek <ja...@redhat.com> wrote: >On Fri, Jan 29, 2021 at 11:18:54AM -0800, sunil.k.pandey via >Gcc-patches wrote: >> On Linux/x86_64, >> >> a7f52181a6a16bb6d216ff41d9c6a9da95c19b5c is the first bad commit >> commit a7f52181a6a16bb6d216ff41d9c6a9da95c19b5c >> Author: Richard Biener <rguent...@suse.de> >> Date: Fri Jan 29 16:02:36 2021 +0100 >> >> rtl-optimization/98863 - tame i386 specific RPAD pass >> >> caused >> >> FAIL: gcc.c-torture/compile/20051216-1.c -O1 (internal compiler >error) >> FAIL: gcc.c-torture/compile/20051216-1.c -O1 (test for excess >errors) > >I can reproduce it. The problem is that we don't revert the df flags >back. > >The following patch fixes it, ok for trunk if it passes >bootstrap/regtest?
Hmm, that's odd. Who relies on deferred rescan being the default? Finish pass, via processing deferred insns also resets it back. Or is this documented somewhere? Richard. >2021-01-29 Jakub Jelinek <ja...@redhat.com> > > * config/i386/i386-features.c (remove_partial_avx_dependency): >Remember > whether DF_DEFER_INSN_RESCAN has been active before or not, and > reset it to previous state. > > * gcc.target/i386/20051216-1.c: New test. > >--- gcc/config/i386/i386-features.c.jj 2021-01-29 20:39:10.561912947 >+0100 >+++ gcc/config/i386/i386-features.c 2021-01-29 20:59:06.254740315 +0100 >@@ -2273,7 +2273,7 @@ remove_partial_avx_dependency (void) > auto_vec<rtx_insn *> control_flow_insns; > > /* We create invalid RTL initially so defer rescans. */ >- df_set_flags (DF_DEFER_INSN_RESCAN); >+ int prev_df_flags = df_set_flags (DF_DEFER_INSN_RESCAN); > > FOR_EACH_BB_FN (bb, cfun) > { >@@ -2409,6 +2409,8 @@ remove_partial_avx_dependency (void) > } > > df_process_deferred_rescans (); >+ if ((prev_df_flags & DF_DEFER_INSN_RESCAN) == 0) >+ 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-29 >21:06:20.386960652 +0100 >+++ gcc/testsuite/gcc.target/i386/20051216-1.c 2021-01-29 >21:03:17.599973093 +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