https://github.com/quic-akaryaki updated 
https://github.com/llvm/llvm-project/pull/237318

>From b4b7711d286542f63e0df22e384d90a4c9c85036 Mon Sep 17 00:00:00 2001
From: Alexey Karyakin <[email protected]>
Date: Fri, 30 Oct 2026 10:45:42 -0700
Subject: [PATCH] [Hexagon] NFC: Refactor repetitive code in getTargetDefines

Signed-off-by: Alexey Karyakin <[email protected]>
---
 clang/lib/Basic/Targets/Hexagon.cpp | 77 ++++++-----------------------
 1 file changed, 16 insertions(+), 61 deletions(-)

diff --git a/clang/lib/Basic/Targets/Hexagon.cpp 
b/clang/lib/Basic/Targets/Hexagon.cpp
index 615114f0fd1ea1..b905db0517d2e8 100644
--- a/clang/lib/Basic/Targets/Hexagon.cpp
+++ b/clang/lib/Basic/Targets/Hexagon.cpp
@@ -26,67 +26,22 @@ void HexagonTargetInfo::getTargetDefines(const LangOptions 
&Opts,
   // The macro __HVXDBL__ is deprecated.
   bool DefineHvxDbl = false;
 
-  if (CPU == "hexagonv5") {
-    Builder.defineMacro("__HEXAGON_V5__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "5");
-    if (Opts.HexagonQdsp6Compat) {
-      Builder.defineMacro("__QDSP6_V5__");
-      Builder.defineMacro("__QDSP6_ARCH__", "5");
-    }
-  } else if (CPU == "hexagonv55") {
-    Builder.defineMacro("__HEXAGON_V55__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "55");
-    Builder.defineMacro("__QDSP6_V55__");
-    Builder.defineMacro("__QDSP6_ARCH__", "55");
-  } else if (CPU == "hexagonv60") {
-    DefineHvxDbl = true;
-    Builder.defineMacro("__HEXAGON_V60__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "60");
-    Builder.defineMacro("__QDSP6_V60__");
-    Builder.defineMacro("__QDSP6_ARCH__", "60");
-  } else if (CPU == "hexagonv62") {
-    DefineHvxDbl = true;
-    Builder.defineMacro("__HEXAGON_V62__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "62");
-  } else if (CPU == "hexagonv65") {
-    DefineHvxDbl = true;
-    Builder.defineMacro("__HEXAGON_V65__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "65");
-  } else if (CPU == "hexagonv66") {
-    DefineHvxDbl = true;
-    Builder.defineMacro("__HEXAGON_V66__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "66");
-  } else if (CPU == "hexagonv67") {
-    Builder.defineMacro("__HEXAGON_V67__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "67");
-  } else if (CPU == "hexagonv67t") {
-    Builder.defineMacro("__HEXAGON_V67T__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "67");
-  } else if (CPU == "hexagonv68") {
-    Builder.defineMacro("__HEXAGON_V68__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "68");
-  } else if (CPU == "hexagonv69") {
-    Builder.defineMacro("__HEXAGON_V69__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "69");
-  } else if (CPU == "hexagonv71") {
-    Builder.defineMacro("__HEXAGON_V71__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "71");
-  } else if (CPU == "hexagonv71t") {
-    Builder.defineMacro("__HEXAGON_V71T__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "71");
-  } else if (CPU == "hexagonv73") {
-    Builder.defineMacro("__HEXAGON_V73__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "73");
-  } else if (CPU == "hexagonv75") {
-    Builder.defineMacro("__HEXAGON_V75__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "75");
-  } else if (CPU == "hexagonv79") {
-    Builder.defineMacro("__HEXAGON_V79__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "79");
-  } else if (CPU == "hexagonv81") {
-    Builder.defineMacro("__HEXAGON_V81__");
-    Builder.defineMacro("__HEXAGON_ARCH__", "81");
-  }
+  StringRef CPUSuffix = CPU;
+  if (!CPUSuffix.consume_front("hexagonv"))
+    return;
+
+  StringRef ArchVersion = CPUSuffix;
+  ArchVersion.consume_back("t");
+
+  auto DefineArchMacros = [=, &Builder](StringRef Prefix) {
+    Builder.defineMacro(Prefix + "V" + CPUSuffix.upper() + "__");
+    Builder.defineMacro(Prefix + "ARCH__", ArchVersion);
+  };
+
+  DefineArchMacros("__HEXAGON_");
+  if ((Opts.HexagonQdsp6Compat && ArchVersion == "5") || ArchVersion == "55" ||
+      ArchVersion == "60")
+    DefineArchMacros("__QDSP6_");
 
   if (hasFeature("hvx-length64b")) {
     Builder.defineMacro("__HVX__");

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to