<div dir="ltr"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
+def ProcVulcan  : SubtargetFeature<"vulcan", "ARMProcFamily", "Vulcan",<br>
+                                   "Broadcom Vulcan processors", [<br>
+                                   FeatureFPARMv8,<br>
+                                   FeatureNEON,<br>
+                                   FeatureCrypto,<br>
+                                   FeatureCRC,<br>
+                                   HasV8_1aOps]>;<br>
+<br></blockquote><div><br></div><div>So, why are all of the processors given as SubtargetFeatures as well as processors? This seems ... less than optimal. I.e. I can't come up with a reason I'd want to say "llc -mattr=+vulcan" rather than llc -mcpu=vulcan.</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 def : ProcessorModel<"generic", NoSchedModel, [<br>
                      FeatureCRC,<br>
                      FeatureFPARMv8,<br>
@@ -233,6 +241,7 @@ def : ProcessorModel<"cortex-a73", Corte<br>
 def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>;<br>
 def : ProcessorModel<"exynos-m1", ExynosM1Model, [ProcExynosM1]>;<br>
 def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>;<br>
+def : ProcessorModel<"vulcan", NoSchedModel, [ProcVulcan]>;<br>
<br>
 //===----------------------------------------------------------------------===//<br>
 // Assembly parser<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp?rev=273148&r1=273147&r2=273148&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp?rev=273148&r1=273147&r2=273148&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp Mon Jun 20 06:13:31 2016<br>
@@ -71,6 +71,7 @@ void AArch64Subtarget::initializePropert<br>
     MaxInterleaveFactor = 4;<br>
     VectorInsertExtractBaseCost = 2;<br>
     break;<br>
+  case Vulcan: break;<br>
   case CortexA35: break;<br>
   case CortexA53: break;<br>
   case Others: break;<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h?rev=273148&r1=273147&r2=273148&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h?rev=273148&r1=273147&r2=273148&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (original)<br>
+++ llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h Mon Jun 20 06:13:31 2016<br>
@@ -41,7 +41,8 @@ public:<br>
     CortexA57,<br>
     Cyclone,<br>
     ExynosM1,<br>
-    Kryo<br>
+    Kryo,<br>
+    Vulcan<br>
   };<br>
<br>
 protected:<br>
<br>
Modified: llvm/trunk/test/CodeGen/AArch64/cpus.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/cpus.ll?rev=273148&r1=273147&r2=273148&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/cpus.ll?rev=273148&r1=273147&r2=273148&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AArch64/cpus.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AArch64/cpus.ll Mon Jun 20 06:13:31 2016<br>
@@ -9,6 +9,7 @@<br>
 ; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a73 2>&1 | FileCheck %s<br>
 ; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=exynos-m1 2>&1 | FileCheck %s<br>
 ; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=kryo 2>&1 | FileCheck %s<br>
+; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=vulcan 2>&1 | FileCheck %s<br>
 ; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=invalidcpu 2>&1 | FileCheck %s --check-prefix=INVALID<br>
<br>
 ; CHECK-NOT: {{.*}}  is not a recognized processor for this target<br>
<br>
Modified: llvm/trunk/test/CodeGen/AArch64/remat.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/remat.ll?rev=273148&r1=273147&r2=273148&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/remat.ll?rev=273148&r1=273147&r2=273148&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/AArch64/remat.ll (original)<br>
+++ llvm/trunk/test/CodeGen/AArch64/remat.ll Mon Jun 20 06:13:31 2016<br>
@@ -5,6 +5,7 @@<br>
 ; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a73 -o - %s | FileCheck %s<br>
 ; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=exynos-m1 -o - %s | FileCheck %s<br>
 ; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=kryo -o - %s | FileCheck %s<br>
+; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=vulcan -o - %s | FileCheck %s<br>
<br>
 %X = type { i64, i64, i64 }<br>
 declare void @f(%X*)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>