[Mlir-commits] [mlir] [mlir][tosa] Move profile compliance metadata to static constexpr tables (PR #232857)

Luke Hutton llvmlistbot at llvm.org
Mon Oct 19 01:59:26 PDT 2026


================
@@ -1,6402 +1,9369 @@
 // The profile-based compliance content below is auto-generated by the script
 // `tools/genspec.py` in https://github.com/arm/tosa-specification
-profileComplianceMap = {
-    {"tosa.argmax",
-     {{{Profile::pro_int}, {{{i8T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, i32T}, SpecificationVersion::V_1_0},
-        {{fp32T, i32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.argmin",
-     {{{Profile::pro_int}, {{{i8T, i32T}, SpecificationVersion::V_1_1_DRAFT}}},
-      {{Profile::pro_fp},
-       {{{fp16T, i32T}, SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, i64T}, SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, i64T}, SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.avg_pool2d",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i8T, i32T, i8T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp32T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.avg_pool2d_adaptive",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i8T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp16T, fp16T, fp32T, fp16T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.conv2d",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.conv3d",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.depthwise_conv2d",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_0}}}}},
-    {"tosa.matmul",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i8T, i8T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp16T, fp32T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.matmul_t",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i8T, i8T, i32T}, SpecificationVersion::V_1_1_DRAFT}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp16T, fp16T, fp16T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp32T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp16T, fp32T, fp16T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.max_pool2d",
-     {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.max_pool2d_adaptive",
-     {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.transpose_conv2d",
-     {{{Profile::pro_int},
-       {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
-         SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_0},
-        {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT},
-        {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
-         SpecificationVersion::V_1_1_DRAFT}}}}},
-    {"tosa.clamp",
-     {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_0}}},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.erf",
-     {{{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.sigmoid",
-     {{{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.tanh",
-     {{{Profile::pro_fp},
-       {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
-    {"tosa.add",
-     {{{Profile::pro_int, Profile::pro_fp},
-       {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
-       anyOf},
-      {{Profile::pro_fp},
-       {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
-        {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
+
+static constexpr TypeInfo kComplianceTypeInfos[] = {
+    i32T,
----------------
lhutton1 wrote:

This isn't very readable in the current form, which makes it difficult to inspect incremental changes to align with the specification. Would it be possible for the generator to emit a line per table entry and disable formatting here? For example:
```
// argmax
i32T, i32T,  // pro_int, v1.0
i8T, i32T,  // pro_int, v1.0
....
// argmin
....
```

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


More information about the Mlir-commits mailing list