Update to use enum classes for various ARM *Kind enums
Summary: This updates the relevant Clang parts for the LLVM change D35882.
Reviewers: rengolin, chandlerc, javed.absar, rovka
Reviewed By: rovka
Subscribers: aemerson, cfe-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D35884
llvm-svn: 309289
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index b65a449..15e0abf 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -90,8 +90,7 @@
bool AArch64TargetInfo::isValidCPUName(StringRef Name) const {
return Name == "generic" ||
- llvm::AArch64::parseCPUArch(Name) !=
- static_cast<unsigned>(llvm::AArch64::ArchKind::AK_INVALID);
+ llvm::AArch64::parseCPUArch(Name) != llvm::AArch64::ArchKind::INVALID;
}
bool AArch64TargetInfo::setCPU(const std::string &Name) {
@@ -178,10 +177,10 @@
switch (ArchKind) {
default:
break;
- case llvm::AArch64::ArchKind::AK_ARMV8_1A:
+ case llvm::AArch64::ArchKind::ARMV8_1A:
getTargetDefinesARMV81A(Opts, Builder);
break;
- case llvm::AArch64::ArchKind::AK_ARMV8_2A:
+ case llvm::AArch64::ArchKind::ARMV8_2A:
getTargetDefinesARMV82A(Opts, Builder);
break;
}
@@ -211,7 +210,7 @@
Crypto = 0;
Unaligned = 1;
HasFullFP16 = 0;
- ArchKind = llvm::AArch64::ArchKind::AK_ARMV8A;
+ ArchKind = llvm::AArch64::ArchKind::ARMV8A;
for (const auto &Feature : Features) {
if (Feature == "+neon")
@@ -225,9 +224,9 @@
if (Feature == "+strict-align")
Unaligned = 0;
if (Feature == "+v8.1a")
- ArchKind = llvm::AArch64::ArchKind::AK_ARMV8_1A;
+ ArchKind = llvm::AArch64::ArchKind::ARMV8_1A;
if (Feature == "+v8.2a")
- ArchKind = llvm::AArch64::ArchKind::AK_ARMV8_2A;
+ ArchKind = llvm::AArch64::ArchKind::ARMV8_2A;
if (Feature == "+fullfp16")
HasFullFP16 = 1;
}
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 2f828b7..b3e8007 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -133,13 +133,13 @@
ArchISA = llvm::ARM::parseArchISA(ArchName);
CPU = llvm::ARM::getDefaultCPU(ArchName);
- unsigned AK = llvm::ARM::parseArch(ArchName);
- if (AK != llvm::ARM::AK_INVALID)
+ llvm::ARM::ArchKind AK = llvm::ARM::parseArch(ArchName);
+ if (AK != llvm::ARM::ArchKind::INVALID)
ArchKind = AK;
setArchInfo(ArchKind);
}
-void ARMTargetInfo::setArchInfo(unsigned Kind) {
+void ARMTargetInfo::setArchInfo(llvm::ARM::ArchKind Kind) {
StringRef SubArch;
// cache TargetParser info
@@ -157,10 +157,10 @@
// when triple does not specify a sub arch,
// then we are not using inline atomics
bool ShouldUseInlineAtomic =
- (ArchISA == llvm::ARM::IK_ARM && ArchVersion >= 6) ||
- (ArchISA == llvm::ARM::IK_THUMB && ArchVersion >= 7);
+ (ArchISA == llvm::ARM::ISAKind::ARM && ArchVersion >= 6) ||
+ (ArchISA == llvm::ARM::ISAKind::THUMB && ArchVersion >= 7);
// Cortex M does not support 8 byte atomics, while general Thumb2 does.
- if (ArchProfile == llvm::ARM::PK_M) {
+ if (ArchProfile == llvm::ARM::ProfileKind::M) {
MaxAtomicPromoteWidth = 32;
if (ShouldUseInlineAtomic)
MaxAtomicInlineWidth = 32;
@@ -171,7 +171,9 @@
}
}
-bool ARMTargetInfo::isThumb() const { return (ArchISA == llvm::ARM::IK_THUMB); }
+bool ARMTargetInfo::isThumb() const {
+ return ArchISA == llvm::ARM::ISAKind::THUMB;
+}
bool ARMTargetInfo::supportsThumb() const {
return CPUAttr.count('T') || ArchVersion >= 6;
@@ -188,42 +190,42 @@
switch (ArchKind) {
default:
return llvm::ARM::getCPUAttr(ArchKind);
- case llvm::ARM::AK_ARMV6M:
+ case llvm::ARM::ArchKind::ARMV6M:
return "6M";
- case llvm::ARM::AK_ARMV7S:
+ case llvm::ARM::ArchKind::ARMV7S:
return "7S";
- case llvm::ARM::AK_ARMV7A:
+ case llvm::ARM::ArchKind::ARMV7A:
return "7A";
- case llvm::ARM::AK_ARMV7R:
+ case llvm::ARM::ArchKind::ARMV7R:
return "7R";
- case llvm::ARM::AK_ARMV7M:
+ case llvm::ARM::ArchKind::ARMV7M:
return "7M";
- case llvm::ARM::AK_ARMV7EM:
+ case llvm::ARM::ArchKind::ARMV7EM:
return "7EM";
- case llvm::ARM::AK_ARMV7VE:
+ case llvm::ARM::ArchKind::ARMV7VE:
return "7VE";
- case llvm::ARM::AK_ARMV8A:
+ case llvm::ARM::ArchKind::ARMV8A:
return "8A";
- case llvm::ARM::AK_ARMV8_1A:
+ case llvm::ARM::ArchKind::ARMV8_1A:
return "8_1A";
- case llvm::ARM::AK_ARMV8_2A:
+ case llvm::ARM::ArchKind::ARMV8_2A:
return "8_2A";
- case llvm::ARM::AK_ARMV8MBaseline:
+ case llvm::ARM::ArchKind::ARMV8MBaseline:
return "8M_BASE";
- case llvm::ARM::AK_ARMV8MMainline:
+ case llvm::ARM::ArchKind::ARMV8MMainline:
return "8M_MAIN";
- case llvm::ARM::AK_ARMV8R:
+ case llvm::ARM::ArchKind::ARMV8R:
return "8R";
}
}
StringRef ARMTargetInfo::getCPUProfile() const {
switch (ArchProfile) {
- case llvm::ARM::PK_A:
+ case llvm::ARM::ProfileKind::A:
return "A";
- case llvm::ARM::PK_R:
+ case llvm::ARM::ProfileKind::R:
return "R";
- case llvm::ARM::PK_M:
+ case llvm::ARM::ProfileKind::M:
return "M";
default:
return "";
@@ -260,7 +262,7 @@
// the frontend matches that.
if (Triple.getEnvironment() == llvm::Triple::EABI ||
Triple.getOS() == llvm::Triple::UnknownOS ||
- ArchProfile == llvm::ARM::PK_M) {
+ ArchProfile == llvm::ARM::ProfileKind::M) {
setABI("aapcs");
} else if (Triple.isWatchABI()) {
setABI("aapcs16");
@@ -347,7 +349,7 @@
const std::vector<std::string> &FeaturesVec) const {
std::vector<StringRef> TargetFeatures;
- unsigned Arch = llvm::ARM::parseArch(getTriple().getArchName());
+ llvm::ARM::ArchKind Arch = llvm::ARM::parseArch(getTriple().getArchName());
// get default FPU features
unsigned FPUKind = llvm::ARM::getDefaultFPU(CPU, Arch);
@@ -437,15 +439,15 @@
switch (ArchVersion) {
case 6:
- if (ArchProfile == llvm::ARM::PK_M)
+ if (ArchProfile == llvm::ARM::ProfileKind::M)
LDREX = 0;
- else if (ArchKind == llvm::ARM::AK_ARMV6K)
+ else if (ArchKind == llvm::ARM::ArchKind::ARMV6K)
LDREX = LDREX_D | LDREX_W | LDREX_H | LDREX_B;
else
LDREX = LDREX_W;
break;
case 7:
- if (ArchProfile == llvm::ARM::PK_M)
+ if (ArchProfile == llvm::ARM::ProfileKind::M)
LDREX = LDREX_W | LDREX_H | LDREX_B;
else
LDREX = LDREX_D | LDREX_W | LDREX_H | LDREX_B;
@@ -487,14 +489,14 @@
bool ARMTargetInfo::isValidCPUName(StringRef Name) const {
return Name == "generic" ||
- llvm::ARM::parseCPUArch(Name) != llvm::ARM::AK_INVALID;
+ llvm::ARM::parseCPUArch(Name) != llvm::ARM::ArchKind::INVALID;
}
bool ARMTargetInfo::setCPU(const std::string &Name) {
if (Name != "generic")
setArchInfo(llvm::ARM::parseCPUArch(Name));
- if (ArchKind == llvm::ARM::AK_INVALID)
+ if (ArchKind == llvm::ARM::ArchKind::INVALID)
return false;
setAtomic();
CPU = Name;
@@ -566,7 +568,7 @@
// __ARM_ARCH_ISA_ARM is defined to 1 if the core supports the ARM ISA. It
// is not defined for the M-profile.
// NOTE that the default profile is assumed to be 'A'
- if (CPUProfile.empty() || ArchProfile != llvm::ARM::PK_M)
+ if (CPUProfile.empty() || ArchProfile != llvm::ARM::ProfileKind::M)
Builder.defineMacro("__ARM_ARCH_ISA_ARM", "1");
// __ARM_ARCH_ISA_THUMB is defined to 1 if the core supports the original
@@ -638,7 +640,7 @@
if (SoftFloat)
Builder.defineMacro("__SOFTFP__");
- if (ArchKind == llvm::ARM::AK_XSCALE)
+ if (ArchKind == llvm::ARM::ArchKind::XSCALE)
Builder.defineMacro("__XSCALE__");
if (isThumb()) {
@@ -720,10 +722,10 @@
switch (ArchKind) {
default:
break;
- case llvm::ARM::AK_ARMV8_1A:
+ case llvm::ARM::ArchKind::ARMV8_1A:
getTargetDefinesARMV81A(Opts, Builder);
break;
- case llvm::ARM::AK_ARMV8_2A:
+ case llvm::ARM::ArchKind::ARMV8_2A:
getTargetDefinesARMV82A(Opts, Builder);
break;
}
diff --git a/clang/lib/Basic/Targets/ARM.h b/clang/lib/Basic/Targets/ARM.h
index 2f52df7..232b23c 100644
--- a/clang/lib/Basic/Targets/ARM.h
+++ b/clang/lib/Basic/Targets/ARM.h
@@ -51,9 +51,9 @@
enum { FP_Default, FP_VFP, FP_Neon } FPMath;
- unsigned ArchISA;
- unsigned ArchKind = llvm::ARM::AK_ARMV4T;
- unsigned ArchProfile;
+ llvm::ARM::ISAKind ArchISA;
+ llvm::ARM::ArchKind ArchKind = llvm::ARM::ArchKind::ARMV4T;
+ llvm::ARM::ProfileKind ArchProfile;
unsigned ArchVersion;
unsigned FPU : 5;
@@ -93,7 +93,7 @@
void setABIAPCS(bool IsAAPCS16);
void setArchInfo();
- void setArchInfo(unsigned Kind);
+ void setArchInfo(llvm::ARM::ArchKind Kind);
void setAtomic();