[Mlir-commits] [mlir] [mlir][amdgpu] Add make_dma_base operation (PR #169086)
Krzysztof Drewniak
llvmlistbot at llvm.org
Fri Nov 21 22:10:34 PST 2025
================
@@ -79,6 +80,36 @@ def AMDGPU_AddressSpaceAttr : EnumAttr<AMDGPU_Dialect, AMDGPU_AddressSpace,
let assemblyFormat = "`<` $value `>`";
}
+class AMDGPU_Type<string name, string typeMnemonic, list<Trait> traits = []>
+ : TypeDef<AMDGPU_Dialect, name, traits> {
+ let mnemonic = typeMnemonic;
+}
+
+//===----------------------------------------------------------------------===//
+// AMDGPU Type definitions
+//===----------------------------------------------------------------------===//
+
+def AMDGPU_TDMBaseType : AMDGPU_Type<"TDMBase", "tdm_base"> {
+ // TODO:
+ // * Add verifiers such that one of the memrefs is from LDS and the other global.
+ // * Add verifiers to make sure that the type is in the correct direction.
+ // * Add verifiers to make sure that the number of indices do not exceed the number of dimensions.
+
+ let summary = "Pair of base addresses that move data between LDS and global storage.";
+ let description = [{
+ This type is opaque and it is used to represent a struct of two addresses.
+ One address is in LDS while the other is in global memory.
+ }];
+ let parameters = (ins "Type":$elementType);
+ let builders = [
+ TypeBuilderWithInferredContext<(ins "Type":$elementType), [{
+ return $_get(elementType.getContext(), elementType);
+ }]>
+ ];
+ let assemblyFormat = "`<` $elementType `>`";
----------------
krzysz00 wrote:
I'd disagree
It's entirely possible to use the same descriptior to load a tyle and then store it back
That's not an error, that's an intended usecase
https://github.com/llvm/llvm-project/pull/169086
More information about the Mlir-commits
mailing list