]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Pull in r214284 from upstream llvm trunk (by Hal Finkel):
authordim <dim@FreeBSD.org>
Thu, 25 Dec 2014 18:22:22 +0000 (18:22 +0000)
committerdim <dim@FreeBSD.org>
Thu, 25 Dec 2014 18:22:22 +0000 (18:22 +0000)
commit6c90d54f67f0b2b7a4736e119f091e66afbabcce
treed99c35034a4055aa5391828a57312dcf1d90ee00
parenta962ff2599bf8202ad46e24a4ea1481964751597
Pull in r214284 from upstream llvm trunk (by Hal Finkel):

  [PowerPC] Add JMP_SLOT relocation definitions

  This will be required by upcoming patches for LLDB support.

  Patch by Justin Hibbits!

Pull in r221510 from upstream llvm trunk (by Justin Hibbits):

  Add Position-independent Code model Module API.

  Summary:
  This makes PIC levels a Module flag attribute, which can be queried by the
  backend.  The flag is named `PIC Level`, and can have a value of:

    0 - Backend-default
    1 - Small-model (-fpic)
    2 - Large-model (-fPIC)

  These match the `-pic-level' command line argument for clang, and the value of the
  preprocessor macro `__PIC__'.

  Test Plan:
  New flags tests specific for the 'PIC Level' module flag.
  Tests to be added as part of a future commit for PowerPC, which will use this new API.

  Reviewers: rafael, echristo

  Reviewed By: rafael, echristo

  Subscribers: rafael, llvm-commits

  Differential Revision: http://reviews.llvm.org/D5882

Pull in r221791 from upstream llvm trunk (by Justin Hibbits):

  Add support for small-model PIC for PowerPC.

  Summary:
  Large-model was added first.  With the addition of support for multiple PIC
  models in LLVM, now add small-model PIC for 32-bit PowerPC, SysV4 ABI.  This
  generates more optimal code, for shared libraries with less than about 16380
  data objects.

  Test Plan: Test cases added or updated

  Reviewers: joerg, hfinkel

  Reviewed By: hfinkel

  Subscribers: jholewinski, mcrosier, emaste, llvm-commits

  Differential Revision: http://reviews.llvm.org/D5399

Together, these changes implement small-model PIC support for PowerPC.

Thanks to Justin Hibbits and Roman Divacky for their assistance in
getting this working.
contrib/llvm/include/llvm/IR/Module.h
contrib/llvm/include/llvm/MC/MCExpr.h
contrib/llvm/include/llvm/Support/CodeGen.h
contrib/llvm/include/llvm/Support/ELF.h
contrib/llvm/lib/IR/Module.cpp
contrib/llvm/lib/MC/MCExpr.cpp
contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td