================ @@ -60,8 +60,51 @@ def DeviceMappingAttrInterface : AttrInterface<"DeviceMappingAttrInterface"> { ]; } +def DeviceMaskingAttrInterface : AttrInterface<"DeviceMaskingAttrInterface"> { + let cppNamespace = "::mlir"; + let description = [{ + Attribute interface describing how to filter the processing units that a + region is mapped to. + + A popcount can be applied to determine the logical linear index that a + physical processing unit is responsible for. + }]; + + let methods = [ + InterfaceMethod< + /*desc=*/[{ + Return the logical active id for a given physical id. + Expects a physicalLinearMappingId of I64Type. + }], + /*retTy=*/"Value", + /*methodName=*/"getLogicalLinearMappingId", + /*args=*/(ins "OpBuilder&":$builder, "Value":$physicalLinearMappingId) + >, + InterfaceMethod< + /*desc=*/[{ + Return the dynamic condition determining whether a given physical id is + active under the mask. + Expects a physicalLinearMappingId of I64Type. + }], + /*retTy=*/"Value", + /*methodName=*/"getIsActiveIdPredicate", + /*args=*/(ins "OpBuilder&":$builder, "Value":$physicalLinearMappingId) + >, + InterfaceMethod< + /*desc=*/[{ + Return the maximal number of pysical ids supported. ---------------- ftynse wrote:
```suggestion Return the maximal number of physical ids supported. ``` https://github.com/llvm/llvm-project/pull/146943 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits