[Bug rtl-optimization/96015] [10/11 Regression] gcc-10.1.0 miscompiles Python on hppa

ebotcazou at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jul 3 09:23:42 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96015

--- Comment #30 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Not clear what the right fix is...  The hot spot in relax_delay_slots:

      /* If this is a jump insn, see if it now jumps to a jump, jumps to
         the next insn, or jumps to a label that is not the last of a
         group of consecutive labels.  */
      if (is_a <rtx_jump_insn *> (insn)
          && (condjump_p (insn) || condjump_in_parallel_p (insn))
          && !ANY_RETURN_P (target_label = JUMP_LABEL (insn)))
        {
          rtx_jump_insn *jump_insn = as_a <rtx_jump_insn *> (insn);
          target_label
            = skip_consecutive_labels (follow_jumps (target_label, jump_insn,
                                                     &crossing));
          if (ANY_RETURN_P (target_label))
            target_label = find_end_label (target_label);

          if (target_label
              && next_active_insn (as_a<rtx_insn *> (target_label)) == next
              && ! condjump_in_parallel_p (jump_insn)
              && ! (next && switch_text_sections_between_p (jump_insn, next)))
            {
              delete_jump (jump_insn);
              continue;
            }

IIRC Jeff already dealt with this kind of issues in the past, so maybe he knows
what the best way out would be?


More information about the Gcc-bugs mailing list