[Mlir-commits] [mlir] [mlir][nvvm] Introduce `setmaxregister.sync.aligned` Op (PR #73780)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Nov 29 05:29:35 PST 2023
================
@@ -400,6 +400,28 @@ def NVVM_FenceScClusterOp : NVVM_Op<"fence.sc.cluster"> {
let assemblyFormat = "attr-dict";
}
+def SetMaxRegisterActionIncrease : I32EnumAttrCase<"increase", 0>;
+def SetMaxRegisterActionDecrease : I32EnumAttrCase<"decrease", 1>;
+def SetMaxRegisterAction : I32EnumAttr<"SetMaxRegisterAction", "NVVM set max register action",
+ [SetMaxRegisterActionDecrease, SetMaxRegisterActionIncrease]> {
+ let genSpecializedAttr = 0;
+ let cppNamespace = "::mlir::NVVM";
+}
+def SetMaxRegisterActionAttr : EnumAttr<NVVM_Dialect, SetMaxRegisterAction, "action">;
+
+def NVVM_SetMaxRegisterOp : NVVM_PTXBuilder_Op<"setmaxregister"> {
+ let arguments = (ins I32Attr:$regCount, SetMaxRegisterActionAttr:$action);
+ let assemblyFormat = "$action $regCount attr-dict";
+ let extraClassDefinition = [{
+ std::string $cppClass::getPtx() {
----------------
durga4github wrote:
Could you please clarify the below questions, for my understanding:
If we happen to add an LLVM intrinsic for this at a later point,
a)
Can we extend the same Op to lower to that instead of inline-PTX ?
(without any changes to the Op's interface)
b)
I believe we can achieve that by overriding the 'hasIntrinsic()' to return true (within the extraClassDeclaration).
Do we need anything more?
https://github.com/llvm/llvm-project/pull/73780
More information about the Mlir-commits
mailing list