[PATCH] 32-bit PowerPC ELF Position Independent Code

Hal Finkel hfinkel at anl.gov
Wed Jul 16 07:22:55 PDT 2014


----- Original Message -----
> From: "Justin Hibbits" <chmeeedalf at gmail.com>
> To: "Bill Schmidt" <wschmidt at linux.vnet.ibm.com>
> Cc: llvm-commits at cs.uiuc.edu
> Sent: Wednesday, July 16, 2014 9:05:48 AM
> Subject: Re: [PATCH] 32-bit PowerPC ELF Position Independent Code
> 
> On Wed, 16 Jul 2014 07:33:58 -0500
> Bill Schmidt <wschmidt at linux.vnet.ibm.com> wrote:
> 
> > On Wed, 2014-07-16 at 07:10 -0500, Bill Schmidt wrote:
> > > Hi Justin,
> > > 
> > > On Tue, 2014-07-15 at 22:36 -0700, Justin Hibbits wrote:
> > > 
> > > > Thanks for reviewing the code.  I think I've addressed all your
> > > > comments, including adding a few rudimentary tests for it.
> > > >  I've
> > > > attached the most recent patch for review.  I hope this can get
> > > > in
> > > > before the 3.5 branch, so will also be looking for somebody
> > > > with
> > > > commit privileges to do the honors.
> > > 
> > > Thanks for the changes.  You did address all the changes but one:
> > > I'm still unsure why you are using .got2 rather than .got.  Can
> > > you
> > > please explain?  In the end it's no skin off my back if you want
> > > to
> > > keep the redundant PLT stubs, as I don't have any investment in
> > > 32-bit efficiency; so this isn't a showstopper for me, but others
> > > may care. This may be the right thing for you, but it would be
> > > good
> > > to understand why.
> > 
> > Justin had actually clarified this in IRC overnight, but I didn't
> > see
> > the message until now.  He uses .got2 because this is what he sees
> > from GCC.  Justin, this is a fine reason, but I suggest that you
> > follow up with Alan Modra to see whether GCC always uses this or
> > whether this behavior depends on any options.  This is no reason to
> > hold up the patch, though.
> 
> ".got" is used for small-model PIC (-fpic).  I haven't seen any usage
> of that for quite some time in software I've compiled, everything
> tends
> to just go with -fPIC.  If there's a way we can distinguish those two
> methods in llvm, I'll add the small model next, after this is
> committed.

You can check for TM.getCodeModel() == CodeModel::Small (and TM.getRelocationModel() == Reloc::PIC_).

 -Hal

> 
> > 
> > Thanks,
> > Bill
> > 
> > > 
> > > The tests are a good start.  You should also have a test that
> > > demonstrates the use of R30 as GOT base when accessing a global,
> > > and a test that demonstrates the use of R29 as the base register
> > > when needed. There are probably existing tests that you can
> > > modify
> > > for these purposes, though I can't point to them offhand.
> 
> I'll look and add some, thanks.
> 
> > > 
> > > I'm constrained by company policy from committing patches on
> > > behalf
> > > of others except in urgent circumstances, so I hope one of the
> > > other
> > > PPC32-interested folks will be willing to step up here once the
> > > patch is complete.
> > > 
> > > Thanks,
> > > Bill
> > > 
> > > > 
> > > > Thanks,
> > > > Justin
> 
> Thanks for the review!
> 
> - Justin
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list