From: Jakub Jelinek Date: Mon, 6 Dec 2010 19:29:38 +0000 (+0100) Subject: re PR debug/46771 (-fcompare-debug failure (length) with -O -ftree-vectorize) X-Git-Tag: releases/gcc-4.6.0~2105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4477cf43336547f37db8243e9086fa3b5941e14;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 047bcef4ba23..7412c201f7c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-12-06 Jakub Jelinek + 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 aaf062ed135c..7c1209fe4b44 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 3c5c43e1696d..f64afd425725 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2010-12-06 Jakub Jelinek + 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 000000000000..b44dfd466ab6 --- /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; +}