================
@@ -128,6 +128,59 @@ static cl::opt<bool> EnableHexagonCabac
 
 static constexpr StringRef DefaultArch = "hexagonv68";
 
+static const FeatureBitset HexagonArchFeatures = {
+    llvm::Hexagon::ArchV5,  llvm::Hexagon::ArchV55, llvm::Hexagon::ArchV60,
+    llvm::Hexagon::ArchV62, llvm::Hexagon::ArchV65, llvm::Hexagon::ArchV66,
+    llvm::Hexagon::ArchV67, llvm::Hexagon::ArchV68, llvm::Hexagon::ArchV69,
+    llvm::Hexagon::ArchV71, llvm::Hexagon::ArchV73, llvm::Hexagon::ArchV75,
+    llvm::Hexagon::ArchV79,
+};
+
+static const FeatureBitset HVXFeatures = {
+    llvm::Hexagon::ExtensionHVX,
+    llvm::Hexagon::ExtensionHVX64B,
+    llvm::Hexagon::ExtensionHVX128B,
+};
+
+static const FeatureBitset HVXVersionFeatures = {
+    llvm::Hexagon::ExtensionHVXV60, llvm::Hexagon::ExtensionHVXV62,
+    llvm::Hexagon::ExtensionHVXV65, llvm::Hexagon::ExtensionHVXV66,
+    llvm::Hexagon::ExtensionHVXV67, llvm::Hexagon::ExtensionHVXV68,
+    llvm::Hexagon::ExtensionHVXV69, llvm::Hexagon::ExtensionHVXV71,
+    llvm::Hexagon::ExtensionHVXV73, llvm::Hexagon::ExtensionHVXV75,
+    llvm::Hexagon::ExtensionHVXV79,
+
+};
+
+static const std::unordered_map<unsigned, unsigned> HexagonDefaultHVXVersion = 
{
+    {llvm::Hexagon::ArchV60, llvm::Hexagon::ExtensionHVXV60},
+    {llvm::Hexagon::ArchV62, llvm::Hexagon::ExtensionHVXV62},
+    {llvm::Hexagon::ArchV65, llvm::Hexagon::ExtensionHVXV65},
+    {llvm::Hexagon::ArchV66, llvm::Hexagon::ExtensionHVXV66},
+    {llvm::Hexagon::ArchV67, llvm::Hexagon::ExtensionHVXV67},
+    {llvm::Hexagon::ArchV68, llvm::Hexagon::ExtensionHVXV68},
+    {llvm::Hexagon::ArchV69, llvm::Hexagon::ExtensionHVXV69},
+    {llvm::Hexagon::ArchV71, llvm::Hexagon::ExtensionHVXV71},
+    {llvm::Hexagon::ArchV73, llvm::Hexagon::ExtensionHVXV73},
+    {llvm::Hexagon::ArchV75, llvm::Hexagon::ExtensionHVXV75},
+    {llvm::Hexagon::ArchV79, llvm::Hexagon::ExtensionHVXV79},
+
+};
+
+// An enum must be used as a command option type, therefore we need to convert
+// it. Note that no mapping exists for NoArch and Generic, the users must 
filter
+// these values.
+static const std::map<llvm::Hexagon::ArchEnum, unsigned>
----------------
quic-akaryaki wrote:

Absolutely.

https://github.com/llvm/llvm-project/pull/145812
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to