[PATCH] D34245: [PowerPC] Refine the checking for emiting TOC restore nops and Tail-Call eligibility.

Hiroshi Inoue via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 6 18:29:07 PDT 2017


inouehrs added inline comments.


================
Comment at: lib/Target/PowerPC/PPCISelLowering.cpp:4252
+    return !TT.isOSDarwin() &&
+           (TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le);
+  case CodeModel::Small:
----------------
sfertile wrote:
> sfertile wrote:
> > inouehrs wrote:
> > > In my understanding, ELFv1 uses small code model (please consult with ABI document). If so we need to check ELFv2 ABI.
> > I thought the V1 ABI used small code model for 32 bit and medium code model for 64 bit, but I'll double check.
> I dug through the 'V1.9 64 bit ELF ABI supplement ' as  well as the older '[32-bit] PowerPC Processor Supplement' and neither mention what code model should be used by default. I think I originally used the gcc docs to infer that ppc64 defaults to medium code model:
> 
> [[ https://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html | IBM RS/6000 and PowerPC Options ]]
> > -mcmodel=medium
> >     Generate PowerPC64 code for the medium model: The TOC and other static data may be up to a total of 4G in size. This is the default for 64-bit Linux.
> 
> and then found 'adjustCodeGenOpts' in PPCMCTargetDesc.cpp which confirmed it.
> 
Sure. Thanks!



Repository:
  rL LLVM

https://reviews.llvm.org/D34245





More information about the llvm-commits mailing list