[PATCH] D60620: [HIP] Support target id by --offload-arch

Artem Belevich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 14:05:34 PDT 2020


tra accepted this revision.
tra added a comment.
This revision is now accepted and ready to land.

Couple of minor nits. LGTM otherwise.



================
Comment at: clang/include/clang/Basic/TargetID.h:42
+/// is not a null pointer.
+/// If \p CanonicalizeProc is true, canonicalize returned processor name.
+llvm::Optional<llvm::StringRef>
----------------
yaxunl wrote:
> tra wrote:
> > Comment needs updating as parameters and return value have changed.
> done
The comment still mentions `\p IsValid`.


================
Comment at: clang/include/clang/Basic/TargetID.h:56-58
+bool isValidTargetIDCombination(
+    const std::set<llvm::StringRef> &TargetIDs,
+    std::pair<llvm::StringRef, llvm::StringRef> *ConflictingTIDs = nullptr);
----------------
yaxunl wrote:
> tra wrote:
> > Looks like a good candidate for using a std::optional<std::pair> return value.
> > 
> done
`hasConflictingTargetIDCombination()` ? Optional is convertible to bool and `has` better reflects the purpose of the function -- you want to know whether there's a conflict. What exactly conflicts is sort of secondary info, only used to provide additional details for diags.


================
Comment at: clang/lib/Basic/TargetID.cpp:161
+      if (llvm::any_of(Features, [&](auto &F) {
+            return ExistingFeatures.find(F.first()) == ExistingFeatures.end();
+          }))
----------------
Nit: `find(...) == end()` -> `count == 0` ? Makes it shorter and arguably easier to read.


================
Comment at: clang/lib/Driver/Driver.cpp:2795-2799
+      auto CTID = getConflictTargetIDCombination(GpuArchs);
+      if (!CTID)
+        return true;
+      ConflictingTIDs = CTID.getValue();
+      return false;
----------------
Could be simplified a bit:
```
if (auto CTID = getConflictTargetIDCombination(GpuArchs)) {
  ConflictingTIDs = CTID.getValue();
  return false
}
return true;
```

Also, it does not seem to add any new functionality to getConflictTargetIDCombination(). Perhaps it would make sense to change the function signatures to match and just use `return getConflictTargetIDCombination()`.


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

https://reviews.llvm.org/D60620



More information about the llvm-commits mailing list