]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/45454 (ICE: in verify_target_availability, at sel-sched.c:1614)
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 26 Jan 2011 05:59:53 +0000 (05:59 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 26 Jan 2011 05:59:53 +0000 (05:59 +0000)
PR debug/45454
* sel-sched.c (moveup_expr): Don't let debug insns prevent
non-debug insns from moving up.

From-SVN: r169275

gcc/ChangeLog
gcc/sel-sched.c

index 71ae9814260411d686b5976bac5a94f658d9f301..9bd387c12b17c748912fc53659dc75e5d21f2f22 100644 (file)
@@ -1,3 +1,9 @@
+2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/45454
+       * sel-sched.c (moveup_expr): Don't let debug insns prevent
+       non-debug insns from moving up.
+
 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        PR target/40125
index d40885c95cf2731c474d1e816364c6cd5c341d10..e26ddac8fab1d010dc499fb6c40e670545771958 100644 (file)
@@ -2142,6 +2142,15 @@ moveup_expr (expr_t expr, insn_t through_insn, bool inside_insn_group,
   ds_t *has_dep_p;
   ds_t full_ds;
 
+  /* ??? We use dependencies of non-debug insns on debug insns to
+     indicate that the debug insns need to be reset if the non-debug
+     insn is pulled ahead of it.  It's hard to figure out how to
+     introduce such a notion in sel-sched, but it already fails to
+     support debug insns in other ways, so we just go ahead and
+     let the deug insns go corrupt for now.  */
+  if (DEBUG_INSN_P (through_insn) && !DEBUG_INSN_P (insn))
+    return MOVEUP_EXPR_SAME;
+
   /* When inside_insn_group, delegate to the helper.  */
   if (inside_insn_group)
     return moveup_expr_inside_insn_group (expr, through_insn);