aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2021-01-30 14:58:14 +0100
committerJakub Jelinek <jakub@redhat.com>2021-01-30 14:58:14 +0100
commitaccc5ba53e0d0c660aa69f16ef32fc05e4439f1f (patch)
treeac7ea4241798e4ad9bc369e6f12b1ae1c31e9296
parent25f303e9a27a0d799f9979446d9f11ed62b8d648 (diff)
downloadgcc-accc5ba53e0d0c660aa69f16ef32fc05e4439f1f.zip
gcc-accc5ba53e0d0c660aa69f16ef32fc05e4439f1f.tar.gz
gcc-accc5ba53e0d0c660aa69f16ef32fc05e4439f1f.tar.bz2
i386, df: Fix up gcc.c-torture/compile/20051216-1.c -O1 -march=cascadelake
> 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) The problem is that we don't revert the df flags back. This patch fixes it by clearing DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans, so that it doesn't leak into following unprepared passes that expect non-deferred rescans. 2021-01-30 Jakub Jelinek <jakub@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.
-rw-r--r--gcc/config/i386/i386-features.c1
-rw-r--r--gcc/testsuite/gcc.target/i386/20051216-1.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/i386/i386-features.c b/gcc/config/i386/i386-features.c
index c845ba9..c7d6482 100644
--- a/gcc/config/i386/i386-features.c
+++ b/gcc/config/i386/i386-features.c
@@ -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);
diff --git a/gcc/testsuite/gcc.target/i386/20051216-1.c b/gcc/testsuite/gcc.target/i386/20051216-1.c
new file mode 100644
index 0000000..42a31d0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/20051216-1.c
@@ -0,0 +1,5 @@
+/* PR rtl-optimization/25432 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -march=cascadelake" } */
+
+#include "../../gcc.c-torture/compile/20051216-1.c"