[PATCH] D35884: Update to use enum classes for various ARM *Kind enums

2017-07-27 Thread Florian Hahn via Phabricator via cfe-commits
fhahn added inline comments.



Comment at: lib/Basic/Targets/AArch64.cpp:94
  llvm::AArch64::parseCPUArch(Name) !=
- static_cast(llvm::AArch64::ArchKind::AK_INVALID);
+ llvm::AArch64::ArchKind::INVALID;
 }

rovka wrote:
> My eyes might be deceiving me, but did you run clang-format?
Yes, it fits on a single line now, excellent spot :)



Comment at: lib/Driver/ToolChains/Darwin.cpp:71
   const llvm::Triple::ArchType Arch = getArchTypeForMachOArchName(Str);
-  unsigned ArchKind = llvm::ARM::parseArch(Str);
+  llvm::ARM::ArchKind AK = llvm::ARM::parseArch(Str);
   T.setArch(Arch);

rovka wrote:
> Nitpick: The rename seems unnecessary (and anyway the file is inconsistent 
> between Arch, ArchKind and AK).
Agreed.


https://reviews.llvm.org/D35884



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35884: Update to use enum classes for various ARM *Kind enums

2017-07-27 Thread Florian Hahn via Phabricator via cfe-commits
fhahn updated this revision to Diff 108479.
fhahn marked an inline comment as done.
fhahn added a comment.

Addressed reviewer comments


https://reviews.llvm.org/D35884

Files:
  lib/Basic/Targets/AArch64.cpp
  lib/Basic/Targets/ARM.cpp
  lib/Basic/Targets/ARM.h
  lib/Driver/ToolChain.cpp
  lib/Driver/ToolChains/Arch/AArch64.cpp
  lib/Driver/ToolChains/Arch/ARM.cpp
  lib/Driver/ToolChains/Darwin.cpp
  lib/Driver/ToolChains/Gnu.cpp

Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -1491,7 +1491,7 @@
   bool IsV7SubArch = TargetTriple.getSubArch() == llvm::Triple::ARMSubArch_v7;
   bool IsThumbMode = IsThumbArch ||
   Args.hasFlag(options::OPT_mthumb, options::OPT_mno_thumb, false) ||
-  (IsArmArch && llvm::ARM::parseArchISA(Arch) == llvm::ARM::IK_THUMB);
+  (IsArmArch && llvm::ARM::parseArchISA(Arch) == llvm::ARM::ISAKind::THUMB);
   bool IsArmV7Mode = (IsArmArch || IsThumbArch) &&
   (llvm::ARM::parseArchVersion(Arch) == 7 ||
(IsArmArch && Arch == "" && IsV7SubArch));
Index: lib/Driver/ToolChains/Darwin.cpp
===
--- lib/Driver/ToolChains/Darwin.cpp
+++ lib/Driver/ToolChains/Darwin.cpp
@@ -68,14 +68,14 @@
 
 void darwin::setTripleTypeForMachOArchName(llvm::Triple , StringRef Str) {
   const llvm::Triple::ArchType Arch = getArchTypeForMachOArchName(Str);
-  unsigned ArchKind = llvm::ARM::parseArch(Str);
+  llvm::ARM::ArchKind ArchKind = llvm::ARM::parseArch(Str);
   T.setArch(Arch);
 
   if (Str == "x86_64h")
 T.setArchName(Str);
-  else if (ArchKind == llvm::ARM::AK_ARMV6M ||
-   ArchKind == llvm::ARM::AK_ARMV7M ||
-   ArchKind == llvm::ARM::AK_ARMV7EM) {
+  else if (ArchKind == llvm::ARM::ArchKind::ARMV6M ||
+   ArchKind == llvm::ARM::ArchKind::ARMV7M ||
+   ArchKind == llvm::ARM::ArchKind::ARMV7EM) {
 T.setOS(llvm::Triple::UnknownOS);
 T.setObjectFormat(llvm::Triple::MachO);
   }
@@ -739,8 +739,8 @@
 }
 
 static const char *ArmMachOArchNameCPU(StringRef CPU) {
-  unsigned ArchKind = llvm::ARM::parseCPUArch(CPU);
-  if (ArchKind == llvm::ARM::AK_INVALID)
+  llvm::ARM::ArchKind ArchKind = llvm::ARM::parseCPUArch(CPU);
+  if (ArchKind == llvm::ARM::ArchKind::INVALID)
 return nullptr;
   StringRef Arch = llvm::ARM::getArchName(ArchKind);
 
Index: lib/Driver/ToolChains/Arch/ARM.cpp
===
--- lib/Driver/ToolChains/Arch/ARM.cpp
+++ lib/Driver/ToolChains/Arch/ARM.cpp
@@ -29,8 +29,7 @@
 // True if M-profile.
 bool arm::isARMMProfile(const llvm::Triple ) {
   llvm::StringRef Arch = Triple.getArchName();
-  unsigned Profile = llvm::ARM::parseArchProfile(Arch);
-  return Profile == llvm::ARM::PK_M;
+  return llvm::ARM::parseArchProfile(Arch) == llvm::ARM::ProfileKind::M;
 }
 
 // Get Arch/CPU from args.
@@ -98,7 +97,7 @@
   std::pair Split = ArchName.split("+");
 
   std::string MArch = arm::getARMArch(ArchName, Triple);
-  if (llvm::ARM::parseArch(MArch) == llvm::ARM::AK_INVALID ||
+  if (llvm::ARM::parseArch(MArch) == llvm::ARM::ArchKind::INVALID ||
   (Split.second.size() && !DecodeARMFeatures(D, Split.second, Features)))
 D.Diag(clang::diag::err_drv_clang_unsupported) << A->getAsString(Args);
 }
@@ -393,7 +392,7 @@
 if (Arg *A = Args.getLastArg(options::OPT_mexecute_only, options::OPT_mno_execute_only)) {
   if (A->getOption().matches(options::OPT_mexecute_only)) {
 if (getARMSubArchVersionNumber(Triple) < 7 &&
-llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::AK_ARMV6T2)
+llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::ArchKind::ARMV6T2)
   D.Diag(diag::err_target_unsupported_execute_only) << Triple.getArchName();
 else if (Arg *B = Args.getLastArg(options::OPT_mno_movt))
   D.Diag(diag::err_opt_not_valid_with_opt) << A->getAsString(Args) << B->getAsString(Args);
@@ -525,22 +524,22 @@
 // FIXME: This is redundant with -mcpu, why does LLVM use this.
 StringRef arm::getLLVMArchSuffixForARM(StringRef CPU, StringRef Arch,
const llvm::Triple ) {
-  unsigned ArchKind;
+  llvm::ARM::ArchKind ArchKind;
   if (CPU == "generic") {
 std::string ARMArch = tools::arm::getARMArch(Arch, Triple);
 ArchKind = llvm::ARM::parseArch(ARMArch);
-if (ArchKind == llvm::ARM::AK_INVALID)
+if (ArchKind == llvm::ARM::ArchKind::INVALID)
   // In case of generic Arch, i.e. "arm",
   // extract arch from default cpu of the Triple
   ArchKind = llvm::ARM::parseCPUArch(Triple.getARMCPUForArch(ARMArch));
   } else {
 // FIXME: horrible hack to get around the fact that Cortex-A7 is only an
 // armv7k triple if it's actually been specified via "-arch armv7k".
 ArchKind = (Arch == "armv7k" || Arch == "thumbv7k")
- 

[PATCH] D35884: Update to use enum classes for various ARM *Kind enums

2017-07-27 Thread Diana Picus via Phabricator via cfe-commits
rovka accepted this revision.
rovka added a comment.
This revision is now accepted and ready to land.

Looks entirely mechanical, I don't see any problem with it (just a couple of 
nits).




Comment at: lib/Basic/Targets/AArch64.cpp:94
  llvm::AArch64::parseCPUArch(Name) !=
- static_cast(llvm::AArch64::ArchKind::AK_INVALID);
+ llvm::AArch64::ArchKind::INVALID;
 }

My eyes might be deceiving me, but did you run clang-format?



Comment at: lib/Driver/ToolChains/Darwin.cpp:71
   const llvm::Triple::ArchType Arch = getArchTypeForMachOArchName(Str);
-  unsigned ArchKind = llvm::ARM::parseArch(Str);
+  llvm::ARM::ArchKind AK = llvm::ARM::parseArch(Str);
   T.setArch(Arch);

Nitpick: The rename seems unnecessary (and anyway the file is inconsistent 
between Arch, ArchKind and AK).


https://reviews.llvm.org/D35884



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35884: Update to use enum classes for various ARM *Kind enums

2017-07-26 Thread Florian Hahn via Phabricator via cfe-commits
fhahn created this revision.
Herald added subscribers: kristof.beyls, aemerson.

This updates the relevant Clang parts for the LLVM change 
https://reviews.llvm.org/D35882.


https://reviews.llvm.org/D35884

Files:
  lib/Basic/Targets/AArch64.cpp
  lib/Basic/Targets/ARM.cpp
  lib/Basic/Targets/ARM.h
  lib/Driver/ToolChain.cpp
  lib/Driver/ToolChains/Arch/AArch64.cpp
  lib/Driver/ToolChains/Arch/ARM.cpp
  lib/Driver/ToolChains/Darwin.cpp
  lib/Driver/ToolChains/Gnu.cpp

Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -1482,7 +1482,7 @@
   bool IsV7SubArch = TargetTriple.getSubArch() == llvm::Triple::ARMSubArch_v7;
   bool IsThumbMode = IsThumbArch ||
   Args.hasFlag(options::OPT_mthumb, options::OPT_mno_thumb, false) ||
-  (IsArmArch && llvm::ARM::parseArchISA(Arch) == llvm::ARM::IK_THUMB);
+  (IsArmArch && llvm::ARM::parseArchISA(Arch) == llvm::ARM::ISAKind::THUMB);
   bool IsArmV7Mode = (IsArmArch || IsThumbArch) &&
   (llvm::ARM::parseArchVersion(Arch) == 7 ||
(IsArmArch && Arch == "" && IsV7SubArch));
Index: lib/Driver/ToolChains/Darwin.cpp
===
--- lib/Driver/ToolChains/Darwin.cpp
+++ lib/Driver/ToolChains/Darwin.cpp
@@ -68,14 +68,14 @@
 
 void darwin::setTripleTypeForMachOArchName(llvm::Triple , StringRef Str) {
   const llvm::Triple::ArchType Arch = getArchTypeForMachOArchName(Str);
-  unsigned ArchKind = llvm::ARM::parseArch(Str);
+  llvm::ARM::ArchKind AK = llvm::ARM::parseArch(Str);
   T.setArch(Arch);
 
   if (Str == "x86_64h")
 T.setArchName(Str);
-  else if (ArchKind == llvm::ARM::AK_ARMV6M ||
-   ArchKind == llvm::ARM::AK_ARMV7M ||
-   ArchKind == llvm::ARM::AK_ARMV7EM) {
+  else if (AK == llvm::ARM::ArchKind::ARMV6M ||
+   AK == llvm::ARM::ArchKind::ARMV7M ||
+   AK == llvm::ARM::ArchKind::ARMV7EM) {
 T.setOS(llvm::Triple::UnknownOS);
 T.setObjectFormat(llvm::Triple::MachO);
   }
@@ -740,10 +740,10 @@
 }
 
 static const char *ArmMachOArchNameCPU(StringRef CPU) {
-  unsigned ArchKind = llvm::ARM::parseCPUArch(CPU);
-  if (ArchKind == llvm::ARM::AK_INVALID)
+  llvm::ARM::ArchKind AK = llvm::ARM::parseCPUArch(CPU);
+  if (AK == llvm::ARM::ArchKind::INVALID)
 return nullptr;
-  StringRef Arch = llvm::ARM::getArchName(ArchKind);
+  StringRef Arch = llvm::ARM::getArchName(AK);
 
   // FIXME: Make sure this MachO triple mangling is really necessary.
   // ARMv5* normalises to ARMv5.
Index: lib/Driver/ToolChains/Arch/ARM.cpp
===
--- lib/Driver/ToolChains/Arch/ARM.cpp
+++ lib/Driver/ToolChains/Arch/ARM.cpp
@@ -29,8 +29,7 @@
 // True if M-profile.
 bool arm::isARMMProfile(const llvm::Triple ) {
   llvm::StringRef Arch = Triple.getArchName();
-  unsigned Profile = llvm::ARM::parseArchProfile(Arch);
-  return Profile == llvm::ARM::PK_M;
+  return llvm::ARM::parseArchProfile(Arch) == llvm::ARM::ProfileKind::M;
 }
 
 // Get Arch/CPU from args.
@@ -98,7 +97,7 @@
   std::pair Split = ArchName.split("+");
 
   std::string MArch = arm::getARMArch(ArchName, Triple);
-  if (llvm::ARM::parseArch(MArch) == llvm::ARM::AK_INVALID ||
+  if (llvm::ARM::parseArch(MArch) == llvm::ARM::ArchKind::INVALID ||
   (Split.second.size() && !DecodeARMFeatures(D, Split.second, Features)))
 D.Diag(clang::diag::err_drv_clang_unsupported) << A->getAsString(Args);
 }
@@ -393,7 +392,7 @@
 if (Arg *A = Args.getLastArg(options::OPT_mexecute_only, options::OPT_mno_execute_only)) {
   if (A->getOption().matches(options::OPT_mexecute_only)) {
 if (getARMSubArchVersionNumber(Triple) < 7 &&
-llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::AK_ARMV6T2)
+llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::ArchKind::ARMV6T2)
   D.Diag(diag::err_target_unsupported_execute_only) << Triple.getArchName();
 else if (Arg *B = Args.getLastArg(options::OPT_mno_movt))
   D.Diag(diag::err_opt_not_valid_with_opt) << A->getAsString(Args) << B->getAsString(Args);
@@ -525,22 +524,22 @@
 // FIXME: This is redundant with -mcpu, why does LLVM use this.
 StringRef arm::getLLVMArchSuffixForARM(StringRef CPU, StringRef Arch,
const llvm::Triple ) {
-  unsigned ArchKind;
+  llvm::ARM::ArchKind ArchKind;
   if (CPU == "generic") {
 std::string ARMArch = tools::arm::getARMArch(Arch, Triple);
 ArchKind = llvm::ARM::parseArch(ARMArch);
-if (ArchKind == llvm::ARM::AK_INVALID)
+if (ArchKind == llvm::ARM::ArchKind::INVALID)
   // In case of generic Arch, i.e. "arm",
   // extract arch from default cpu of the Triple
   ArchKind = llvm::ARM::parseCPUArch(Triple.getARMCPUForArch(ARMArch));
   } else {
 // FIXME: horrible hack to get around the fact that Cortex-A7 is only an