[PATCH] D112408: [WIP][RISCV] Add the zve extension according to the v1.0-rc2 spec

Fraser Cormack via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 27 02:25:27 PDT 2021


frasercrmck added a comment.

I think the rest of my comments would be to do with `zvl` so I'll leave it there to avoid repetition.



================
Comment at: llvm/include/llvm/Support/RISCVISAInfo.h:65
+  unsigned getMinVLen() const { return MinVLen; }
+  unsigned getMaxEew() const { return MaxEew; }
+  unsigned getMaxEewFp() const { return MaxEewFp; }
----------------
Aside from the discussion about EEW vs. ELEN, something about the capitalization irks me. I realise we already have `XLen` but `Eew` looks... wrong. If other people disagree then that's fine.


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:67
     {"zvlsseg", RISCVExtensionVersion{0, 10}},
+    {"zvl32b", RISCVExtensionVersion{0, 10}},
+    {"zvl64b", RISCVExtensionVersion{0, 10}},
----------------
Should this be in this patch? Or has some rebasing gone wrong and introduced code for D108694?


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:733
+
+      {"zvl64b", {"zvl32b"}},
+      {"zvl128b", {"zvl64b"}},
----------------
Again, should `zvl` code be in this patch?


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:765
+    if (Implication != Implications.end()) {
+      for (auto ImpliedExtName : Implication->second) {
+        if (WorkList.count(ImpliedExtName))
----------------
Really minor, but here you're using `auto` for `StringRef` but earlier and elsewhere it's `auto &`. I'm not sure which is preferred. Presumably `StringRef`s are cheap to copy and `auto` is fine? If `auto &` is more prominent in this file then go with that.


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:787
 
+void RISCVISAInfo::updateMinVLen() {
+  for (auto &Ext : Exts) {
----------------
`zvl` patch?


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:468
+
+  if (Error Result = ISAInfo->checkDependency())
+    return std::move(Result);
----------------
I'm not the most familiar with this API, but do we really need to `checkDependency` here when it's done in the next line?


================
Comment at: llvm/lib/Support/RISCVISAInfo.cpp:696
+
+  if (Error Result = ISAInfo->checkDependency())
+    return std::move(Result);
----------------
Same here. Duplicate `checkDependency`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112408/new/

https://reviews.llvm.org/D112408



More information about the cfe-commits mailing list