aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-12-06 20:29:38 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2010-12-06 20:29:38 +0100
commitf4477cf43336547f37db8243e9086fa3b5941e14 (patch)
treed2410960fa89feae2c245906b67430c8bb3b5697 /gcc
parent150bd82096743de59b2528fefcb7a5ec936f9d89 (diff)
downloadgcc-f4477cf43336547f37db8243e9086fa3b5941e14.zip
gcc-f4477cf43336547f37db8243e9086fa3b5941e14.tar.gz
gcc-f4477cf43336547f37db8243e9086fa3b5941e14.tar.bz2
re PR debug/46771 (-fcompare-debug failure (length) with -O -ftree-vectorize)
PR debug/46771 * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode on DEBUG_INSNs. * gcc.dg/pr46771.c: New test. From-SVN: r167514
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/reginfo.c2
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/pr46771.c18
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 047bcef..7412c20 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-12-06 Jakub Jelinek <jakub@redhat.com>
+ PR debug/46771
+ * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
+ on DEBUG_INSNs.
+
PR rtl-optimization/46777
* cfglayout.c (duplicate_insn_chain): Avoid duplicating
also barrier after tablejump.
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index aaf062e..7c1209f 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -1330,7 +1330,7 @@ init_subregs_of_mode (void)
FOR_EACH_BB (bb)
FOR_BB_INSNS (bb, insn)
- if (INSN_P (insn))
+ if (NONDEBUG_INSN_P (insn))
find_subregs_of_mode (PATTERN (insn));
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3c5c43e..f64afd4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2010-12-06 Jakub Jelinek <jakub@redhat.com>
+ PR debug/46771
+ * gcc.dg/pr46771.c: New test.
+
PR rtl-optimization/46777
* gcc.dg/pr46777.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr46771.c b/gcc/testsuite/gcc.dg/pr46771.c
new file mode 100644
index 0000000..b44dfd4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr46771.c
@@ -0,0 +1,18 @@
+/* PR debug/46771 */
+/* { dg-do compile } */
+/* { dg-options "-O -ftree-vectorize -fcompare-debug" } */
+
+unsigned char v[1600];
+
+unsigned char
+foo (unsigned char x)
+{
+ int i;
+ unsigned char a = x;
+ unsigned char b = x;
+ for (i = 0; i < 1600; i++)
+ a = a < v[i] ? v[i] : a;
+ for (i = 0; i < 1600; i++)
+ b = b > v[i] ? v[i] : b;
+ return a - b;
+}