[PowerPC] Support powerpc64le as a syntax-checking target.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Fri, 26 Jul 2013 01:35:43 +0000 (01:35 +0000)
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>
Fri, 26 Jul 2013 01:35:43 +0000 (01:35 +0000)
commit0a9170d931629a1a8d5aced1ff9c0a46976c62dc
tree22682fc44c2ca2431639621e085e15b16d98e533
parentdb8ea01c4308468f5678240924a9923772b975e4
[PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code.  Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing.  Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The LLVM portions of this patch simply add ppc64le coverage everywhere
that ppc64 coverage currently exists.  There is nothing of any import
worth testing until such time as little-endian code generation is
implemented.  In the corresponding Clang patch, there is a new test
case variant to ensure that correct built-in defines for little-endian
code are generated.

llvm-svn: 187179
22 files changed:
llvm/autoconf/config.guess
llvm/autoconf/m4/libtool.m4
llvm/include/llvm/ADT/Triple.h
llvm/include/llvm/Object/ELF.h
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
llvm/lib/MC/MCObjectFileInfo.cpp
llvm/lib/Support/Triple.cpp
llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
llvm/lib/Target/PowerPC/PPC.td
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
llvm/lib/Target/PowerPC/PPCSubtarget.cpp
llvm/lib/Target/PowerPC/PPCSubtarget.h
llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
llvm/projects/sample/autoconf/config.guess
llvm/projects/sample/autoconf/m4/libtool.m4