From: Alexandre Oliva Date: Fri, 4 Jun 2010 16:43:42 +0000 (+0000) Subject: re PR rtl-optimization/44013 (VTA produces wrong code) X-Git-Tag: releases/gcc-4.6.0~6764 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39e7207ad9ffdf6d8059a28be8c940e78ef0fe7c;p=thirdparty%2Fgcc.git re PR rtl-optimization/44013 (VTA produces wrong code) PR rtl-optimization/44013 * sched-deps.c (add_dependence_list_and_free): Don't free lists when processing debug insns. From-SVN: r160281 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcf8e965f994..142715bbc69b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-06-04 Alexandre Oliva + PR rtl-optimization/44013 + * sched-deps.c (add_dependence_list_and_free): Don't free lists + when processing debug insns. + PR debug/41371 * var-tracking.c (find_loc_in_1pdv): Mark initial value before recursing. Check that recursion is bounded. Rename inner var diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 556c38a4fb0f..4577c8e1c51b 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1407,7 +1407,10 @@ add_dependence_list_and_free (struct deps_desc *deps, rtx insn, rtx *listp, { rtx list, next; - if (deps->readonly) + /* We don't want to short-circuit dependencies involving debug + insns, because they may cause actual dependencies to be + disregarded. */ + if (deps->readonly || DEBUG_INSN_P (insn)) { add_dependence_list (insn, *listp, uncond, dep_type); return;