forked from OSchip/llvm-project
Propagate a terrible hack to the sparc target feature handling code
by erasing the soft-float target feature if the rest of the front end added it because of defaults or the soft float option. Add some testing for some of the targets that implement this hack. llvm-svn: 236179
This commit is contained in:
parent
3d5925b0e4
commit
fb481a4054
|
@ -5319,9 +5319,11 @@ public:
|
|||
bool handleTargetFeatures(std::vector<std::string> &Features,
|
||||
DiagnosticsEngine &Diags) override {
|
||||
SoftFloat = false;
|
||||
for (unsigned i = 0, e = Features.size(); i != e; ++i)
|
||||
if (Features[i] == "+soft-float")
|
||||
SoftFloat = true;
|
||||
auto Feature = std::find(Features.begin(), Features.end(), "+soft-float");
|
||||
if (Feature != Features.end()) {
|
||||
SoftFloat = true;
|
||||
Features.erase(Feature);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
void getTargetDefines(const LangOptions &Opts,
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s -target-cpu corei7 -target-feature +avx | FileCheck %s -check-prefix=CORE-CPU-AND-FEATURES
|
||||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s -target-cpu x86-64 | FileCheck %s -check-prefix=X86-64-CPU
|
||||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s -target-cpu corei7-avx -target-feature -avx | FileCheck %s -check-prefix=AVX-MINUS-FEATURE
|
||||
// RUN: %clang_cc1 -triple sparc-unknown-unknown -emit-llvm -o - %s -target-feature +soft-float | FileCheck %s -check-prefix=SOFT-FLOAT
|
||||
// RUN: %clang_cc1 -triple arm-unknown-unknown -emit-llvm -o - %s -target-feature +soft-float | FileCheck %s -check-prefix=SOFT-FLOAT
|
||||
// RUN: %clang_cc1 -triple mips-unknown-unknown -emit-llvm -o - %s -target-feature +soft-float | FileCheck %s -check-prefix=SOFT-FLOAT
|
||||
|
||||
void foo() {}
|
||||
|
||||
|
@ -19,3 +22,4 @@ void foo() {}
|
|||
// CORE-CPU-AND-FEATURES: "target-cpu"="corei7" "target-features"={{.*}}+avx
|
||||
// X86-64-CPU: "target-cpu"="x86-64"
|
||||
// AVX-MINUS-FEATURE: "target-features"={{.*}}-avx
|
||||
// SOFT-FLOAT-NOT: "target-features"={{.*}}+soft-float
|
||||
|
|
Loading…
Reference in New Issue