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