[PATCH] D48572: [Hexagon] Add a "generic" processor

Brendon Cahoon via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 25 15:06:20 PDT 2018


bcahoon created this revision.
bcahoon added a reviewer: kparzysz.
Herald added subscribers: llvm-commits, hiraditya.

The generic processor is added to be used with a 3rd party program that create a back-end with the "generic" CPU. This patch also enables the JIT for Hexagon.


Repository:
  rL LLVM

https://reviews.llvm.org/D48572

Files:
  llvm/lib/Target/Hexagon/Hexagon.td
  llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
  llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
  llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
  llvm/test/CodeGen/Hexagon/generic-cpu.ll


Index: llvm/test/CodeGen/Hexagon/generic-cpu.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/Hexagon/generic-cpu.ll
@@ -0,0 +1,7 @@
+; RUN: llc -mtriple=hexagon-unknown-elf -mcpu=generic < %s | FileCheck %s
+
+; CHECK-NOT: invalid CPU
+
+define i32 @test(i32 %a) {
+  ret i32 0
+}
Index: llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
===================================================================
--- llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
+++ llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
@@ -18,6 +18,6 @@
 }
 
 extern "C" void LLVMInitializeHexagonTargetInfo() {
-  RegisterTarget<Triple::hexagon, /*HasJIT=*/false> X(
+  RegisterTarget<Triple::hexagon, /*HasJIT=*/true> X(
       getTheHexagonTarget(), "hexagon", "Hexagon", "Hexagon");
 }
Index: llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
===================================================================
--- llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
+++ llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
@@ -309,6 +309,7 @@
 {
   std::vector<std::string> table
   {
+    "generic",
     "hexagonv4",
     "hexagonv5",
     "hexagonv55",
Index: llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
===================================================================
--- llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
+++ llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
@@ -92,6 +92,7 @@
 HexagonSubtarget &
 HexagonSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS) {
   static std::map<StringRef, Hexagon::ArchEnum> CpuTable{
+      {"generic", Hexagon::ArchEnum::V60},
       {"hexagonv4", Hexagon::ArchEnum::V4},
       {"hexagonv5", Hexagon::ArchEnum::V5},
       {"hexagonv55", Hexagon::ArchEnum::V55},
Index: llvm/lib/Target/Hexagon/Hexagon.td
===================================================================
--- llvm/lib/Target/Hexagon/Hexagon.td
+++ llvm/lib/Target/Hexagon/Hexagon.td
@@ -322,6 +322,10 @@
            list<SubtargetFeature> Features>
  : ProcessorModel<Name, Model, Features>;
 
+def : Proc<"generic", HexagonModelV60,
+           [ArchV4, ArchV5, ArchV55, ArchV60,
+            FeatureDuplex, FeatureMemops, FeatureNVJ, FeatureNVS,
+            FeaturePackets, FeatureSmallData]>;
 def : Proc<"hexagonv4",  HexagonModelV4,
            [ArchV4,
             FeatureDuplex, FeatureMemops, FeatureNVJ, FeatureNVS,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48572.152784.patch
Type: text/x-patch
Size: 2457 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180625/ddea5934/attachment.bin>


More information about the llvm-commits mailing list