aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/sched-deps.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fcf8e96..142715b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-06-04 Alexandre Oliva <aoliva@redhat.com>
+ 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 556c38a..4577c8e 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;