[Mlir-commits] [llvm] [mlir] [MLIR][NVVM] Add NVVMRequiresSM op trait (PR #126886)

Srinivasa Ravi llvmlistbot at llvm.org
Fri Mar 14 04:55:03 PDT 2025


================
@@ -1558,6 +1559,25 @@ NVVMTargetAttr::verify(function_ref<InFlightDiagnostic()> emitError,
   return success();
 }
 
+LogicalResult NVVMTargetAttr::verifyTarget(Operation *gpuModule) {
+  auto gpuModuleOp = llvm::dyn_cast<gpu::GPUModuleOp>(gpuModule);
+  if (!gpuModuleOp)
+    return emitError(gpuModule->getLoc(),
+                     "NVVM target attribute must be attached to a GPU module");
+  gpuModuleOp->walk([&](Operation *op) {
+    if (auto reqOp = llvm::dyn_cast<NVVM::RequiresSMInterface>(op)) {
+      auto requirement = reqOp.getRequiredMinSMVersion();
+      if (!requirement.isCompatible(NVVMCheckSMVersion(getChip()))) {
+        op->emitOpError() << "is not supported on " << getChip();
+        return WalkResult::interrupt();
+      }
+    }
+    return WalkResult::advance();
----------------
Wolfram70 wrote:

Updated in the latest revision, thanks!

https://github.com/llvm/llvm-project/pull/126886


More information about the Mlir-commits mailing list