[PATCH] D35884: Update to use enum classes for various ARM *Kind enums
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
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::pairSplit = 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
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
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::pairSplit = 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