http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59985

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- gcc/lra-constraints.c.jj    2014-01-24 16:27:35.000000000 +0100
+++ gcc/lra-constraints.c    2014-01-30 18:10:03.795737809 +0100
@@ -4049,7 +4049,7 @@ lra_constraints (bool first_p)
       curr_insn = lra_pop_insn ();
       --new_min_len;
       curr_bb = BLOCK_FOR_INSN (curr_insn);
-      if (curr_bb != last_bb)
+      if (curr_bb != last_bb && !DEBUG_INSN_P (curr_insn))
     {
       last_bb = curr_bb;
       bb_reload_num = lra_curr_reload_num;

seems to fix this.  Vlad, what do you think about that?
last_bb is only used to determine bb_reload_num computation, and bb_reload_num
is only used in process_alt_operands which is called from curr_insn_transform
and never called for DEBUG_INSNs, so in order to ensure that bb_reload_num is
set the same, we shouldn't set it for DEBUG_INSN_Ps which will not appear
without -g.
And, DEBUG_INSN processing in lra_constraint I think shouldn't care about
bb_reload_num value.

Reply via email to