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

--- Comment #18 from John David Anglin <danglin at gcc dot gnu.org> 2011-05-23 
16:57:02 UTC ---
So, the problem is here:

             /* Figure out where to emit the special USE insn so we don't
                 later incorrectly compute register live/death info.  */
              rtx tmp = next_active_insn (trial);
              if (tmp == 0)
                tmp = find_end_label ();

              if (tmp)
                {
                  /* Insert the special USE insn and update dataflow info.  */
                  update_block (trial, tmp);

                  /* Now emit a label before the special USE insn, and
                     redirect our jump to the new label.  */
                  target_label = get_label_before (PREV_INSN (tmp));
                  reorg_redirect_jump (delay_insn, target_label);
                  next = insn;
                  continue;
                }

This code fails to handle the case where there already is a use.

Reply via email to