[all-commits] [llvm/llvm-project] 8f0044: [PowerPC] Add the LLVM triple for powerpcle [1/5]
Brandon Bergren via All-commits
all-commits at lists.llvm.org
Sat Jan 2 10:20:38 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8f004471c2a50f0bc03731ebec32aa30de68b61f
https://github.com/llvm/llvm-project/commit/8f004471c2a50f0bc03731ebec32aa30de68b61f
Author: Brandon Bergren <bdragon at FreeBSD.org>
Date: 2021-01-02 (Sat, 02 Jan 2021)
Changed paths:
M llvm/cmake/config.guess
M llvm/include/llvm/ADT/Triple.h
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
M llvm/lib/Support/Triple.cpp
M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
M llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
M llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
M llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
M llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h
M llvm/unittests/ADT/TripleTest.cpp
Log Message:
-----------
[PowerPC] Add the LLVM triple for powerpcle [1/5]
Add a triple for powerpcle-*-*.
This is a little-endian encoding of the 32-bit PowerPC ABI, useful in certain niche situations:
1) A loader such as the FreeBSD loader which will be loading a little endian kernel. This is required for PowerPC64LE to load properly in pseries VMs.
Such a loader is implemented as a freestanding ELF32 LSB binary.
2) Userspace emulation of a 32-bit LE architecture such as x86 on 64-bit hosts such as PowerPC64LE with tools like box86 requires having a 32-bit LE toolchain and library set, as they operate by translating only the main binary and switching to native code when making library calls.
3) The Void Linux for PowerPC project is experimenting with running an entire powerpcle userland.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D93918
Commit: 696bd3073fd2fb5b01b88115bddff394c4b44ad5
https://github.com/llvm/llvm-project/commit/696bd3073fd2fb5b01b88115bddff394c4b44ad5
Author: Brandon Bergren <bdragon at FreeBSD.org>
Date: 2021-01-02 (Sat, 02 Jan 2021)
Changed paths:
M llvm/include/llvm/Object/ELFObjectFile.h
M llvm/lib/Object/RelocationResolver.cpp
M llvm/test/tools/llvm-objcopy/ELF/binary-output-target.test
M llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
M llvm/test/tools/llvm-objdump/ELF/PowerPC/branch-offset.s
M llvm/unittests/Object/ELFObjectFileTest.cpp
Log Message:
-----------
[PowerPC] Support powerpcle target in LLVMObject [2/5]
Add object file handling for powerpcle-*-*.
Adjust tests.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D93916
Commit: 6cee9d0cf896d83fa8f87b7f8d67ae2dfdbc1bf9
https://github.com/llvm/llvm-project/commit/6cee9d0cf896d83fa8f87b7f8d67ae2dfdbc1bf9
Author: Brandon Bergren <bdragon at FreeBSD.org>
Date: 2021-01-02 (Sat, 02 Jan 2021)
Changed paths:
M clang/lib/Basic/Targets.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.cpp
M clang/lib/Basic/Targets/PPC.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/TargetInfo.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/altivec.c
M clang/test/CodeGen/builtins-ppc-altivec.c
M clang/test/CodeGen/ppc32-and-aix-struct-return.c
M clang/test/CodeGen/target-data.c
M clang/test/Driver/linux-header-search.cpp
M clang/test/Driver/ppc-endian.c
M clang/test/Driver/ppc-features.cpp
Log Message:
-----------
[PowerPC] Support powerpcle target in Clang [3/5]
Add powerpcle support to clang.
For FreeBSD, assume a freestanding environment for now, as we only need it in the first place to build loader, which runs in the OpenFirmware environment instead of the FreeBSD environment.
For Linux, recognize glibc and musl environments to match current usage in Void Linux PPC.
Adjust driver to match current binutils behavior regarding machine naming.
Adjust and expand tests.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D93919
Commit: 275eb8289c43665bc4ce873535f9960322d16c07
https://github.com/llvm/llvm-project/commit/275eb8289c43665bc4ce873535f9960322d16c07
Author: Brandon Bergren <bdragon at FreeBSD.org>
Date: 2021-01-02 (Sat, 02 Jan 2021)
Changed paths:
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/ScriptParser.cpp
M lld/test/ELF/emulation-ppc.s
M lld/test/ELF/ppc32-gnu-ifunc.s
M lld/test/ELF/ppc32-reloc-rel.s
Log Message:
-----------
[PowerPC] Support powerpcle target in LLD [4/5]
Add support for linking powerpcle code in LLD.
Rewrite lld/test/ELF/emulation-ppc.s to use a shared check block and add powerpcle tests.
Update tests.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D93917
Commit: 2288319733cd5f525bf7e24dece08bfcf9d0ff9e
https://github.com/llvm/llvm-project/commit/2288319733cd5f525bf7e24dece08bfcf9d0ff9e
Author: Brandon Bergren <bdragon at FreeBSD.org>
Date: 2021-01-02 (Sat, 02 Jan 2021)
Changed paths:
M clang/test/Driver/ppc-features.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
Log Message:
-----------
[PowerPC] Enable OpenMP for powerpcle target. [5/5]
Enable OpenMP for powerpcle to match the rest of powerpc*.
Update tests.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D92445
Compare: https://github.com/llvm/llvm-project/compare/d5317b41c585...2288319733cd
More information about the All-commits
mailing list