patch to fix PR81481

Richard Sandiford richard.sandiford@linaro.org
Sat Sep 30 08:15:00 GMT 2017


Vladimir Makarov <vmakarov@redhat.com> writes:
> The following patch fixes
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81481
>
> The patch was bootstrapped and tested on x86-64.
>
> Committed as rev. 253300.
>
>
> Index: ira-costs.c
> ===================================================================
> --- ira-costs.c (revision 253253)
> +++ ira-costs.c (working copy)
> @@ -1471,7 +1471,10 @@ scan_one_insn (rtx_insn *insn)
>                && targetm.legitimate_constant_p (GET_MODE (SET_DEST (set)),
>                                                  XEXP (note, 0))
>                && REG_N_SETS (REGNO (SET_DEST (set))) == 1))
> -      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set))))
> +      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set)))
> +      /* LRA does not use equiv with a symbol for PIC code.  */
> +      && (! ira_use_lra_p || ! pic_offset_table_rtx
> +         || ! contains_symbol_ref_p (XEXP (note, 0))))
>       {
>         enum reg_class cl = GENERAL_REGS;
>         rtx reg = SET_DEST (set);

I don't think this is the right test for PICness.  Most targets have
an unconditional pic_offset_table_rtx.

Richard



More information about the Gcc-patches mailing list