diff options
author | Reid Kleckner <rnk@google.com> | 2019-12-06 15:42:14 -0800 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-12-06 15:42:14 -0800 |
commit | eff08f40976e177923fe95759917e59375458f71 (patch) | |
tree | 028c8cec655334a91c3cdd3c4ec91187ece2dbba /clang/lib/Basic | |
parent | b22d8ae7f436bfe63b28ceddea743071a6601eb1 (diff) | |
download | bcm5719-llvm-eff08f40976e177923fe95759917e59375458f71.tar.gz bcm5719-llvm-eff08f40976e177923fe95759917e59375458f71.zip |
Revert "[Sema][X86] Consider target attribute into the checks in validateOutputSize and validateInputSize."
This reverts commit e1578fd2b79fe5af5f80c0c166a8abd0f816c022.
It introduces a dependency on Attr.h which I am removing from
ASTContext.h.
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets/X86.cpp | 19 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/X86.h | 15 |
2 files changed, 14 insertions, 20 deletions
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp index d099d3742f0..51f2006ddbd 100644 --- a/clang/lib/Basic/Targets/X86.cpp +++ b/clang/lib/Basic/Targets/X86.cpp @@ -1731,24 +1731,21 @@ bool X86TargetInfo::validateAsmConstraint( } } -bool X86TargetInfo::validateOutputSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, +bool X86TargetInfo::validateOutputSize(StringRef Constraint, unsigned Size) const { // Strip off constraint modifiers. while (Constraint[0] == '=' || Constraint[0] == '+' || Constraint[0] == '&') Constraint = Constraint.substr(1); - return validateOperandSize(FeatureMap, Constraint, Size); + return validateOperandSize(Constraint, Size); } -bool X86TargetInfo::validateInputSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, +bool X86TargetInfo::validateInputSize(StringRef Constraint, unsigned Size) const { - return validateOperandSize(FeatureMap, Constraint, Size); + return validateOperandSize(Constraint, Size); } -bool X86TargetInfo::validateOperandSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, +bool X86TargetInfo::validateOperandSize(StringRef Constraint, unsigned Size) const { switch (Constraint[0]) { default: @@ -1773,7 +1770,7 @@ bool X86TargetInfo::validateOperandSize(const llvm::StringMap<bool> &FeatureMap, case 'z': case '0': // XMM0 - if (FeatureMap.lookup("sse")) + if (SSELevel >= SSE1) return Size <= 128U; return false; case 'i': @@ -1787,10 +1784,10 @@ bool X86TargetInfo::validateOperandSize(const llvm::StringMap<bool> &FeatureMap, LLVM_FALLTHROUGH; case 'v': case 'x': - if (FeatureMap.lookup("avx512f")) + if (SSELevel >= AVX512F) // 512-bit zmm registers can be used if target supports AVX512F. return Size <= 512U; - else if (FeatureMap.lookup("avx")) + else if (SSELevel >= AVX) // 256-bit ymm registers can be used if target supports AVX. return Size <= 256U; return Size <= 128U; diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h index ae3fd240ce2..cad869f7123 100644 --- a/clang/lib/Basic/Targets/X86.h +++ b/clang/lib/Basic/Targets/X86.h @@ -177,11 +177,9 @@ public: return false; } - bool validateOutputSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, unsigned Size) const override; + bool validateOutputSize(StringRef Constraint, unsigned Size) const override; - bool validateInputSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, unsigned Size) const override; + bool validateInputSize(StringRef Constraint, unsigned Size) const override; virtual bool checkCFProtectionReturnSupported(DiagnosticsEngine &Diags) const override { @@ -193,8 +191,8 @@ public: return true; }; - virtual bool validateOperandSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, unsigned Size) const; + + virtual bool validateOperandSize(StringRef Constraint, unsigned Size) const; std::string convertConstraint(const char *&Constraint) const override; const char *getClobbers() const override { @@ -370,8 +368,7 @@ public: return -1; } - bool validateOperandSize(const llvm::StringMap<bool> &FeatureMap, - StringRef Constraint, unsigned Size) const override { + bool validateOperandSize(StringRef Constraint, unsigned Size) const override { switch (Constraint[0]) { default: break; @@ -389,7 +386,7 @@ public: return Size <= 64; } - return X86TargetInfo::validateOperandSize(FeatureMap, Constraint, Size); + return X86TargetInfo::validateOperandSize(Constraint, Size); } void setMaxAtomicWidth() override { |