From: jakub Date: Fri, 4 Jun 2010 16:43:42 +0000 (+0000) Subject: PR rtl-optimization/44013 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e0431fecaefa15cad0253fb67f699eba01c43eb;p=thirdparty%2Fgcc.git PR rtl-optimization/44013 * sched-deps.c (add_dependence_list_and_free): Don't free lists when processing debug insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160281 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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;