forked from OSchip/llvm-project
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
This commit is contained in:
parent
400e7b7811
commit
abedf7a0c0
|
@ -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; }
|
||||
|
|
|
@ -24,7 +24,10 @@
|
|||
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 \
|
||||
// RUN: -mabi=altivec | FileCheck -check-prefix=CHECK-ELFv2 %s
|
||||
|
||||
// CHECK-ELFv1: "-mrelocation-model" "pic" "-pic-level" "2"
|
||||
// CHECK-ELFv1: "-target-abi" "elfv1"
|
||||
// CHECK-ELFv1-QPX: "-mrelocation-model" "pic" "-pic-level" "2"
|
||||
// CHECK-ELFv1-QPX: "-target-abi" "elfv1-qpx"
|
||||
// CHECK-ELFv2: "-mrelocation-model" "pic" "-pic-level" "2"
|
||||
// CHECK-ELFv2: "-target-abi" "elfv2"
|
||||
|
||||
|
|
Loading…
Reference in New Issue