Revert "Driver: switch Windows to static RelocModel"
This reverts commit r290569. It caused unforeseen codegen changes for switch jump tables described in PR31488. llvm-svn: 290672
This commit is contained in:
parent
3f4c87d0b5
commit
8c19083f76
|
@ -82,6 +82,18 @@ bool MSVCToolChain::IsUnwindTablesDefault() const {
|
|||
return getArch() == llvm::Triple::x86_64;
|
||||
}
|
||||
|
||||
bool MSVCToolChain::isPICDefault() const {
|
||||
return getArch() == llvm::Triple::x86_64;
|
||||
}
|
||||
|
||||
bool MSVCToolChain::isPIEDefault() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MSVCToolChain::isPICDefaultForced() const {
|
||||
return getArch() == llvm::Triple::x86_64;
|
||||
}
|
||||
|
||||
#ifdef USE_WIN32
|
||||
static bool readFullStringValue(HKEY hkey, const char *valueName,
|
||||
std::string &value) {
|
||||
|
|
|
@ -2880,13 +2880,22 @@ bool Generic_GCC::IsUnwindTablesDefault() const {
|
|||
|
||||
bool Generic_GCC::isPICDefault() const {
|
||||
switch (getArch()) {
|
||||
default: return false;
|
||||
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; }
|
||||
|
||||
bool Generic_GCC::isPICDefaultForced() const {
|
||||
return getArch() == llvm::Triple::x86_64 && getTriple().isOSWindows();
|
||||
}
|
||||
|
||||
bool Generic_GCC::IsIntegratedAssemblerDefault() const {
|
||||
switch (getTriple().getArch()) {
|
||||
case llvm::Triple::x86:
|
||||
|
|
|
@ -232,8 +232,8 @@ public:
|
|||
|
||||
bool IsUnwindTablesDefault() const override;
|
||||
bool isPICDefault() const override;
|
||||
bool isPIEDefault() const override { return false; }
|
||||
bool isPICDefaultForced() const override { return false; }
|
||||
bool isPIEDefault() const override;
|
||||
bool isPICDefaultForced() const override;
|
||||
bool IsIntegratedAssemblerDefault() const override;
|
||||
llvm::opt::DerivedArgList *
|
||||
TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
|
||||
|
@ -1136,9 +1136,9 @@ public:
|
|||
|
||||
bool IsIntegratedAssemblerDefault() const override;
|
||||
bool IsUnwindTablesDefault() const override;
|
||||
bool isPICDefault() const override { return false; }
|
||||
bool isPIEDefault() const override { return false; }
|
||||
bool isPICDefaultForced() const override { return false; }
|
||||
bool isPICDefault() const override;
|
||||
bool isPIEDefault() const override;
|
||||
bool isPICDefaultForced() const override;
|
||||
|
||||
void
|
||||
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
|
|
|
@ -255,4 +255,9 @@
|
|||
// RUN: | FileCheck %s --check-prefix=CHECK-PIC1
|
||||
// RUN: %clang -c %s -target arm64-linux-android -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-PIC1
|
||||
|
||||
//
|
||||
// On Windows-X64 PIC is enabled by default
|
||||
// RUN: %clang -c %s -target x86_64-pc-windows-msvc18.0.0 -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-PIC2
|
||||
// RUN: %clang -c %s -target x86_64-pc-windows-gnu -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-PIC2
|
||||
|
|
Loading…
Reference in New Issue