This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix up ppc64-linux profiledbootstrap - .toc section references in .debug_loc (PR target/51957)


On Tue, Jan 24, 2012 at 08:36:11AM +0100, Jakub Jelinek wrote:
> If you relax the checking too much, don't you risk that something other than
> the TOC register value is being added to the UNSPEC_TOCREL?  Say, if you
> have an 8byte object in .toc, and some loop body uses
> ((char *) &object)[1 + iv];
> to access it, can't you end up with (r2 + 1), or (r2 + 1 + iv) being added
> to UNSPEC_TOCREL?  Certainly on i686 something like that happens and that
> is why the delegitimization needs to be strict about the pic register

I don't think so.  We only put addresses, int constants smaller than
Pmode, and FP constants in .toc.  Hmm, however with -mcmodel=medium we
do have UNSPEC_TOCREL refering to other local objects so you may be
correct.

> I've checked in my patch already

OK.  I was worried that we might be losing debug info, but if you take
a look you'll see that location list is quite bogus anyway.  At least
it looks that way to me..

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]