summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-06 19:29:38 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-06 19:29:38 +0000
commit8364ac6a097211a30fd08a25b4b6a2f8b1dca127 (patch)
treed2410960fa89feae2c245906b67430c8bb3b5697
parentbb1c580c847d650e2322189dc2e37824fd0e8ec5 (diff)
downloadgcc-8364ac6a097211a30fd08a25b4b6a2f8b1dca127.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167514 138bc75d-0d04-0410-961f-82ee72b054a4
-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 047bcef4ba2..7412c201f7c 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 aaf062ed135..7c1209fe4b4 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 3c5c43e1696..f64afd42572 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 00000000000..b44dfd466ab
--- /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;
+}