diff options
| author | Joerg Sonnenberger <joerg@bec.de> | 2016-12-15 00:02:57 +0000 |
|---|---|---|
| committer | Joerg Sonnenberger <joerg@bec.de> | 2016-12-15 00:02:57 +0000 |
| commit | abedf7a0c0ae6331533e935ca0f17bab0530e083 (patch) | |
| tree | 4703d88b2bb73be5e8024c0efcee16bee6e24615 /clang/lib/Driver/ToolChains.cpp | |
| parent | 400e7b7811162e729e4f687294f9d8229704c2e7 (diff) | |
| download | bcm5719-llvm-abedf7a0c0ae6331533e935ca0f17bab0530e083.tar.gz bcm5719-llvm-abedf7a0c0ae6331533e935ca0f17bab0530e083.zip | |
Use PIC relocation mode by default for PowerPC64 ELF
Most of the PowerPC64 code generation already creates PIC access. This
changes to a full PIC default, similar to what GCC is doing.
Overall, a monolithic clang binary shrinks by 600KB (about 1%). This can
be a slight regression for TLS access and will use the TOC more
aggressively instead of synthesizing immediates. It is expected to be
performance neutral.
Differential Revision: https://reviews.llvm.org/D26564
llvm-svn: 289744
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
| -rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 46707aa06ba..968b0cb4724 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -2879,7 +2879,15 @@ bool Generic_GCC::IsUnwindTablesDefault() const { } bool Generic_GCC::isPICDefault() const { - return getArch() == llvm::Triple::x86_64 && getTriple().isOSWindows(); + switch (getArch()) { + case llvm::Triple::x86_64: + return getTriple().isOSWindows(); + case llvm::Triple::ppc64: + case llvm::Triple::ppc64le: + return !getTriple().isOSBinFormatMachO() && !getTriple().isMacOSX(); + default: + return false; + } } bool Generic_GCC::isPIEDefault() const { return false; } |

