This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix up ppc64-linux profiledbootstrap - .toc section references in .debug_loc (PR target/51957)
- From: Alan Modra <amodra at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: David Edelsohn <dje dot gcc at gmail dot com>, Jason Merrill <jason at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 24 Jan 2012 13:45:40 +1030
- Subject: Re: [PATCH] Fix up ppc64-linux profiledbootstrap - .toc section references in .debug_loc (PR target/51957)
- References: <20120123182918.GL18768@tyan-ft48-01.lab.bos.redhat.com>
On Mon, Jan 23, 2012 at 07:29:18PM +0100, Jakub Jelinek wrote:
> can hit it in some cases. The problem here is that var-tracking.c
> (adjust_insn) isn't able to delegitimize it, because the UNSPEC_TOCREL
> isn't added there to r2 register, but to a debug_expr (which only afterwards
> is found to contain r2 value).
Why don't we relax operand checks in rs6000_delegitimize_address?
http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00304.html did that as
part of changing toc references. For mainline you'd just get rid of
- && ((GET_CODE (XEXP (x, 0)) == REG
- && (REGNO (XEXP (x, 0)) == TOC_REGISTER
- || TARGET_MINIMAL_TOC
- || TARGET_CMODEL != CMODEL_SMALL))
- || (TARGET_CMODEL != CMODEL_SMALL
- && GET_CODE (XEXP (x, 0)) == CONST
- && GET_CODE (XEXP (XEXP (x, 0), 0)) == PLUS
- && GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == REG
- && REGNO (XEXP (XEXP (XEXP (x, 0), 0), 0)) == TOC_REGISTER
- && GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 1)) == HIGH
- && rtx_equal_p (XEXP (x, 1),
- XEXP (XEXP (XEXP (XEXP (x, 0), 0), 1), 0)))))
--
Alan Modra
Australia Development Lab, IBM