diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-12-06 20:29:38 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-12-06 20:29:38 +0100 |
commit | f4477cf43336547f37db8243e9086fa3b5941e14 (patch) | |
tree | d2410960fa89feae2c245906b67430c8bb3b5697 /gcc | |
parent | 150bd82096743de59b2528fefcb7a5ec936f9d89 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/reginfo.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr46771.c | 18 |
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; +} |