]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/44013 (VTA produces wrong code)
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 4 Jun 2010 16:43:42 +0000 (16:43 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 4 Jun 2010 16:43:42 +0000 (18:43 +0200)
PR rtl-optimization/44013
* sched-deps.c (add_dependence_list_and_free): Don't free lists
when processing debug insns.

From-SVN: r160281

gcc/ChangeLog
gcc/sched-deps.c

index fcf8e965f99472b211d7ac1ded9a4914b0f6c015..142715bbc69ba2e01dec8548dddd743176db239d 100644 (file)
@@ -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
index 556c38a4fb0faa42bd97dda4b033b4a621418b07..4577c8e1c51b2fa91ad1988634bc06f21df0bfc3 100644 (file)
@@ -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;