[Mlir-commits] [mlir] [mlir][Target] Improve ROCDL gpu serialization API (PR #95456)
Krzysztof Drewniak
llvmlistbot at llvm.org
Thu Jun 13 13:59:28 PDT 2024
================
@@ -27,6 +27,62 @@ namespace ROCDL {
/// 5. Returns an empty string.
StringRef getROCMPath();
+/// Helper class for specifying the AMD GCN device libraries required for
+/// compilation.
+class AMDGCNLibraryList {
+public:
+ typedef enum : uint32_t {
+ None = 0,
+ Ockl = 1,
+ Ocml = 2,
+ OpenCL = 4,
+ Hip = 8,
+ LastLib = Hip,
+ All = (LastLib << 1) - 1
+ } Library;
+
+ explicit AMDGCNLibraryList(uint32_t libs = All) : libList(All & libs) {}
+
+ /// Return a list with no libraries.
+ static AMDGCNLibraryList getEmpty() { return AMDGCNLibraryList(None); }
+
+ /// Return the libraries needed for compiling code with OpenCL calls.
+ static AMDGCNLibraryList getOpenCL() {
+ return AMDGCNLibraryList(Ockl | Ocml | OpenCL);
+ }
+
+ /// Returns true if the list is empty.
+ bool isEmpty() const { return libList == None; }
+
+ /// Adds a library to the list.
+ AMDGCNLibraryList addLibrary(Library lib) {
+ libList = libList | lib;
+ return *this;
+ }
+
+ /// Adds all the libraries in `list` to the library list.
+ AMDGCNLibraryList addList(AMDGCNLibraryList list) {
----------------
krzysz00 wrote:
For instance, this is `bitEnumSet()` or some similarly-phrased function
https://github.com/llvm/llvm-project/pull/95456
More information about the Mlir-commits
mailing list