[Mlir-commits] [mlir] [MLIR][WasmSSA] Enable strict property assembly format (PR #217285)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Aug 19 03:51:46 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Mehdi Amini (joker-eph)
<details>
<summary>Changes</summary>
Enable the strict properties assembly format mode for the WasmSSA dialect. Spell import operation type and limit metadata directly in the assembly formats so those inherent attributes are not parsed from attr-dict in strict mode.
Assisted-by: Codex
---
Full diff: https://github.com/llvm/llvm-project/pull/217285.diff
5 Files Affected:
- (modified) mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td (+1)
- (modified) mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td (+5-3)
- (modified) mlir/test/Dialect/WasmSSA/custom_parser/import.mlir (+8-8)
- (modified) mlir/test/Target/Wasm/add_div.mlir (+1-1)
- (modified) mlir/test/Target/Wasm/import.mlir (+4-4)
``````````diff
diff --git a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
index f2777a7b155ed..0e93fdd060962 100644
--- a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
+++ b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
@@ -14,6 +14,7 @@ include "mlir/IR/OpBase.td"
def WasmSSA_Dialect : Dialect {
let name = "wasmssa";
+ let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::wasmssa";
let description = [{
The `wasmssa` dialect is intended to represent WebAssembly
diff --git a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
index c206ea8c05583..8961f6d7dc7f0 100644
--- a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
+++ b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
@@ -283,7 +283,9 @@ def WasmSSA_FuncImportOp : WasmSSA_Op<"import_func", [
"StringRef":$importName,
"FunctionType": $type)>
];
- let assemblyFormat = "$importName `from` $moduleName `as` $sym_name attr-dict";
+ let assemblyFormat = "$importName `from` $moduleName `as` $sym_name `:` $type "
+ "(`arg_attrs` `=` $arg_attrs^)? "
+ "(`res_attrs` `=` $res_attrs^)? attr-dict";
}
def WasmSSA_GlobalOp : WasmSSA_Op<"global", [
@@ -577,7 +579,7 @@ def WasmSSA_MemImportOp : WasmSSA_Op<"import_mem", [Symbol, ImportOpInterface]>
return ::mlir::SymbolTable::Visibility::Nested;
};
}];
- let assemblyFormat = "$importName `from` $moduleName `as` $sym_name attr-dict";
+ let assemblyFormat = "$importName `from` $moduleName `as` $sym_name $limits attr-dict";
}
def WasmSSA_TableOp : WasmSSA_Op<"table", [Symbol]> {
@@ -617,7 +619,7 @@ def WasmSSA_TableImportOp : WasmSSA_Op<"import_table", [Symbol, ImportOpInterfac
return ::mlir::SymbolTable::Visibility::Nested;
};
}];
- let assemblyFormat = "$importName `from` $moduleName `as` $sym_name attr-dict";
+ let assemblyFormat = "$importName `from` $moduleName `as` $sym_name $type attr-dict";
}
def WasmSSA_ReturnOp : WasmSSA_Op<"return", [Terminator]> {
diff --git a/mlir/test/Dialect/WasmSSA/custom_parser/import.mlir b/mlir/test/Dialect/WasmSSA/custom_parser/import.mlir
index dc232299afadd..ba11195d0d80a 100644
--- a/mlir/test/Dialect/WasmSSA/custom_parser/import.mlir
+++ b/mlir/test/Dialect/WasmSSA/custom_parser/import.mlir
@@ -1,17 +1,17 @@
// RUN: mlir-opt %s | FileCheck %s
module {
- wasmssa.import_func "foo" from "my_module" as @func_0 {sym_visibility = "nested", type = (i32) -> ()}
- wasmssa.import_func "bar" from "my_module" as @func_1 {sym_visibility = "nested", type = (i32) -> ()}
- wasmssa.import_table "table" from "my_module" as @table_0 {sym_visibility = "nested", type = !wasmssa<tabletype !wasmssa.funcref [2:]>}
- wasmssa.import_mem "mem" from "my_module" as @mem_0 {limits = !wasmssa<limit[2:]>, sym_visibility = "nested"}
+ wasmssa.import_func "foo" from "my_module" as @func_0 : (i32) -> () {sym_visibility = "nested"}
+ wasmssa.import_func "bar" from "my_module" as @func_1 : (i32) -> () {sym_visibility = "nested"}
+ wasmssa.import_table "table" from "my_module" as @table_0 !wasmssa<tabletype !wasmssa.funcref [2:]> {sym_visibility = "nested"}
+ wasmssa.import_mem "mem" from "my_module" as @mem_0 !wasmssa<limit[2:]> {sym_visibility = "nested"}
wasmssa.import_global "glob" from "my_module" as @global_0 : i32
wasmssa.import_global "glob_mut" from "my_other_module" as @global_1 mutable : i32
}
-// CHECK-LABEL: wasmssa.import_func "foo" from "my_module" as @func_0 {sym_visibility = "nested", type = (i32) -> ()}
-// CHECK: wasmssa.import_func "bar" from "my_module" as @func_1 {sym_visibility = "nested", type = (i32) -> ()}
-// CHECK: wasmssa.import_table "table" from "my_module" as @table_0 {sym_visibility = "nested", type = !wasmssa<tabletype !wasmssa.funcref [2:]>}
-// CHECK: wasmssa.import_mem "mem" from "my_module" as @mem_0 {limits = !wasmssa<limit[2:]>, sym_visibility = "nested"}
+// CHECK-LABEL: wasmssa.import_func "foo" from "my_module" as @func_0 : (i32) -> () {sym_visibility = "nested"}
+// CHECK: wasmssa.import_func "bar" from "my_module" as @func_1 : (i32) -> () {sym_visibility = "nested"}
+// CHECK: wasmssa.import_table "table" from "my_module" as @table_0 !wasmssa<tabletype !wasmssa.funcref [2:]> {sym_visibility = "nested"}
+// CHECK: wasmssa.import_mem "mem" from "my_module" as @mem_0 !wasmssa<limit[2:]> {sym_visibility = "nested"}
// CHECK: wasmssa.import_global "glob" from "my_module" as @global_0 : i32
// CHECK: wasmssa.import_global "glob_mut" from "my_other_module" as @global_1 mutable : i32
diff --git a/mlir/test/Target/Wasm/add_div.mlir b/mlir/test/Target/Wasm/add_div.mlir
index 8a87c6084892d..015726d9fe81c 100644
--- a/mlir/test/Target/Wasm/add_div.mlir
+++ b/mlir/test/Target/Wasm/add_div.mlir
@@ -19,7 +19,7 @@
(export "add" (func $add)))
*/
-// CHECK-LABEL: wasmssa.import_func "twoTimes" from "env" as @func_0 {type = (i32) -> i32}
+// CHECK-LABEL: wasmssa.import_func "twoTimes" from "env" as @func_0 : (i32) -> i32
// CHECK-LABEL: wasmssa.func exported @add(
// CHECK-SAME: %[[ARG0:.*]]: !wasmssa<local ref to i32>,
diff --git a/mlir/test/Target/Wasm/import.mlir b/mlir/test/Target/Wasm/import.mlir
index dcdfa52703539..65df468819f8d 100644
--- a/mlir/test/Target/Wasm/import.mlir
+++ b/mlir/test/Target/Wasm/import.mlir
@@ -11,9 +11,9 @@
)
*/
-// CHECK-LABEL: wasmssa.import_func "foo" from "my_module" as @func_0 {type = (i32) -> ()}
-// CHECK: wasmssa.import_func "bar" from "my_module" as @func_1 {type = (i32) -> ()}
-// CHECK: wasmssa.import_table "table" from "my_module" as @table_0 {type = !wasmssa<tabletype !wasmssa.funcref [2:]>}
-// CHECK: wasmssa.import_mem "mem" from "my_module" as @mem_0 {limits = !wasmssa<limit[2:]>}
+// CHECK-LABEL: wasmssa.import_func "foo" from "my_module" as @func_0 : (i32) -> ()
+// CHECK: wasmssa.import_func "bar" from "my_module" as @func_1 : (i32) -> ()
+// CHECK: wasmssa.import_table "table" from "my_module" as @table_0 !wasmssa<tabletype !wasmssa.funcref [2:]>
+// CHECK: wasmssa.import_mem "mem" from "my_module" as @mem_0 !wasmssa<limit[2:]>
// CHECK: wasmssa.import_global "glob" from "my_module" as @global_0 : i32
// CHECK: wasmssa.import_global "glob_mut" from "my_other_module" as @global_1 mutable : i32
``````````
</details>
https://github.com/llvm/llvm-project/pull/217285
More information about the Mlir-commits
mailing list