[flang-commits] [clang] [flang] [mlir] [mlir] Enable strict properties in assembly formats by default (PR #225742)
Mehdi Amini via flang-commits
flang-commits at lists.llvm.org
Sat Sep 26 04:16:09 PDT 2026
https://github.com/joker-eph updated https://github.com/llvm/llvm-project/pull/225742
>From 405bb50a0ee97a3f00ffcfe9a6bced7dc646d007 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Wed, 23 Sep 2026 04:49:08 -0700
Subject: [PATCH] [mlir] Enable strict properties in assembly formats by
default
Make strict property assembly formats the default and remove redundant
per-dialect settings. Temporarily keep dialects whose formats still use
legacy attribute dictionaries in legacy mode, and update the documentation.
Assisted-by: Codex
---
.../clang/CIR/Dialect/IR/CIRDialect.td | 1 +
.../flang/Optimizer/Dialect/CUF/CUFDialect.td | 1 +
.../flang/Optimizer/Dialect/FIRCG/CGOps.td | 1 +
.../flang/Optimizer/Dialect/FIRDialect.td | 1 +
.../flang/Optimizer/Dialect/MIF/MIFDialect.td | 1 +
.../flang/Optimizer/HLFIR/HLFIROpBase.td | 1 +
mlir/docs/DefiningDialects/Operations.md | 20 +++++++---------
mlir/docs/DefiningDialects/_index.md | 24 +++++++++----------
mlir/docs/ReleaseNotes.md | 12 ++++++++++
mlir/examples/toy/Ch4/include/toy/Ops.td | 1 +
mlir/examples/toy/Ch5/include/toy/Ops.td | 1 +
mlir/examples/toy/Ch6/include/toy/Ops.td | 1 +
mlir/examples/toy/Ch7/include/toy/Ops.td | 1 +
.../mlir/Dialect/AMDGPU/IR/AMDGPUBase.td | 1 -
.../mlir/Dialect/Affine/IR/AffineOps.td | 1 -
.../mlir/Dialect/Arith/IR/ArithBase.td | 1 -
mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td | 1 -
mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td | 1 -
mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td | 1 -
.../mlir/Dialect/Async/IR/AsyncDialect.td | 1 -
.../Bufferization/IR/BufferizationBase.td | 1 -
.../mlir/Dialect/Complex/IR/ComplexBase.td | 1 -
.../Dialect/ControlFlow/IR/ControlFlowOps.td | 1 -
mlir/include/mlir/Dialect/DLTI/DLTIBase.td | 1 -
.../mlir/Dialect/EmitC/IR/EmitCBase.td | 1 -
mlir/include/mlir/Dialect/Func/IR/FuncOps.td | 1 -
mlir/include/mlir/Dialect/GPU/IR/GPUBase.td | 1 -
mlir/include/mlir/Dialect/IRDL/IR/IRDL.td | 1 -
.../mlir/Dialect/Index/IR/IndexDialect.td | 1 -
.../mlir/Dialect/LLVMIR/LLVMDialect.td | 1 -
.../mlir/Dialect/LLVMIR/NVVMDialect.td | 1 -
.../mlir/Dialect/LLVMIR/ROCDLDialect.td | 1 -
mlir/include/mlir/Dialect/LLVMIR/VCIXOps.td | 1 -
mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td | 1 -
.../mlir/Dialect/Linalg/IR/LinalgBase.td | 1 -
.../Dialect/MLProgram/IR/MLProgramBase.td | 1 -
mlir/include/mlir/Dialect/MPI/IR/MPI.td | 1 -
mlir/include/mlir/Dialect/Math/IR/MathBase.td | 1 -
.../mlir/Dialect/MemRef/IR/MemRefBase.td | 1 -
mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td | 1 -
.../mlir/Dialect/OpenACC/OpenACCBase.td | 1 -
.../mlir/Dialect/OpenMP/OpenMPDialect.td | 1 -
.../include/mlir/Dialect/PDL/IR/PDLDialect.td | 1 -
.../mlir/Dialect/PDLInterp/IR/PDLInterpOps.td | 1 -
.../include/mlir/Dialect/Ptr/IR/PtrDialect.td | 1 -
.../mlir/Dialect/Quant/IR/QuantBase.td | 1 -
mlir/include/mlir/Dialect/SCF/IR/SCFOps.td | 1 -
.../include/mlir/Dialect/SMT/IR/SMTDialect.td | 1 -
.../mlir/Dialect/SPIRV/IR/SPIRVBase.td | 1 -
.../mlir/Dialect/Shape/IR/ShapeBase.td | 1 -
.../mlir/Dialect/Shard/IR/ShardBase.td | 1 -
.../SparseTensor/IR/SparseTensorBase.td | 1 -
.../mlir/Dialect/Tensor/IR/TensorBase.td | 1 -
.../mlir/Dialect/Tosa/IR/TosaOpBase.td | 1 -
.../Dialect/Transform/IR/TransformDialect.td | 1 -
mlir/include/mlir/Dialect/UB/IR/UBOps.td | 1 -
mlir/include/mlir/Dialect/Vector/IR/Vector.td | 1 -
.../mlir/Dialect/WasmSSA/IR/WasmSSABase.td | 1 -
mlir/include/mlir/Dialect/X86/X86.td | 1 -
.../mlir/Dialect/XeGPU/IR/XeGPUDialect.td | 1 -
mlir/include/mlir/IR/BuiltinDialect.td | 1 -
mlir/include/mlir/IR/DialectBase.td | 11 +++++----
mlir/test/lib/Dialect/Test/TestDialect.td | 2 ++
mlir/test/mlir-tblgen/op-format-invalid.td | 3 ++-
mlir/test/mlir-tblgen/op-format.td | 3 ++-
mlir/test/python/python_test_ops.td | 1 +
66 files changed, 54 insertions(+), 80 deletions(-)
diff --git a/clang/include/clang/CIR/Dialect/IR/CIRDialect.td b/clang/include/clang/CIR/Dialect/IR/CIRDialect.td
index b2a2707a67b66..aee862afc02b4 100644
--- a/clang/include/clang/CIR/Dialect/IR/CIRDialect.td
+++ b/clang/include/clang/CIR/Dialect/IR/CIRDialect.td
@@ -17,6 +17,7 @@ include "mlir/IR/OpBase.td"
def CIR_Dialect : Dialect {
let name = "cir";
+ let useStrictPropertiesInAssemblyFormat = 0;
// A short one-line summary of our dialect.
let summary = "A high-level dialect for analyzing and optimizing Clang "
diff --git a/flang/include/flang/Optimizer/Dialect/CUF/CUFDialect.td b/flang/include/flang/Optimizer/Dialect/CUF/CUFDialect.td
index 0cabd55f1ea5a..984c457f04831 100644
--- a/flang/include/flang/Optimizer/Dialect/CUF/CUFDialect.td
+++ b/flang/include/flang/Optimizer/Dialect/CUF/CUFDialect.td
@@ -20,6 +20,7 @@ include "mlir/IR/OpBase.td"
def CUFDialect : Dialect {
let name = "cuf";
+ let useStrictPropertiesInAssemblyFormat = 0;
let summary = "CUDA Fortran dialect";
diff --git a/flang/include/flang/Optimizer/Dialect/FIRCG/CGOps.td b/flang/include/flang/Optimizer/Dialect/FIRCG/CGOps.td
index 5a7c85e7883fa..5409b81b59aa3 100644
--- a/flang/include/flang/Optimizer/Dialect/FIRCG/CGOps.td
+++ b/flang/include/flang/Optimizer/Dialect/FIRCG/CGOps.td
@@ -22,6 +22,7 @@ include "mlir/IR/BuiltinAttributes.td"
def fircg_Dialect : Dialect {
let name = "fircg";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::fir::cg";
}
diff --git a/flang/include/flang/Optimizer/Dialect/FIRDialect.td b/flang/include/flang/Optimizer/Dialect/FIRDialect.td
index 415bf7a6a95fe..3ac9a12d5cf55 100644
--- a/flang/include/flang/Optimizer/Dialect/FIRDialect.td
+++ b/flang/include/flang/Optimizer/Dialect/FIRDialect.td
@@ -23,6 +23,7 @@ include "mlir/Interfaces/SideEffectInterfaces.td"
def FIROpsDialect : Dialect {
let name = "fir";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::fir";
let useDefaultTypePrinterParser = 0;
let useDefaultAttributePrinterParser = 0;
diff --git a/flang/include/flang/Optimizer/Dialect/MIF/MIFDialect.td b/flang/include/flang/Optimizer/Dialect/MIF/MIFDialect.td
index f8be6a86a79fe..c4dccc9b77dba 100644
--- a/flang/include/flang/Optimizer/Dialect/MIF/MIFDialect.td
+++ b/flang/include/flang/Optimizer/Dialect/MIF/MIFDialect.td
@@ -20,6 +20,7 @@ include "mlir/IR/OpBase.td"
def MIFDialect : Dialect {
let name = "mif";
+ let useStrictPropertiesInAssemblyFormat = 0;
let summary = "Multi-Image Fortran dialect";
diff --git a/flang/include/flang/Optimizer/HLFIR/HLFIROpBase.td b/flang/include/flang/Optimizer/HLFIR/HLFIROpBase.td
index 1f46b69561d68..a0764077289aa 100644
--- a/flang/include/flang/Optimizer/HLFIR/HLFIROpBase.td
+++ b/flang/include/flang/Optimizer/HLFIR/HLFIROpBase.td
@@ -21,6 +21,7 @@ include "flang/Optimizer/Dialect/FIRTypes.td"
def hlfir_Dialect : Dialect {
let name = "hlfir";
+ let useStrictPropertiesInAssemblyFormat = 0;
let summary = "High Level Fortran IR.";
diff --git a/mlir/docs/DefiningDialects/Operations.md b/mlir/docs/DefiningDialects/Operations.md
index 5615af678d339..f991f5308c5ae 100644
--- a/mlir/docs/DefiningDialects/Operations.md
+++ b/mlir/docs/DefiningDialects/Operations.md
@@ -759,15 +759,12 @@ The available directives are as follows:
* `attr-dict`
- - Represents the attribute dictionary of the operation.
- - Any inherent attributes that are not used elsewhere in the format are
- printed as part of the attribute dictionary unless a `prop-dict` is
- present.
- - Discardable attributes are always part of the `attr-dict`.
- - For dialects that set `useStrictPropertiesInAssemblyFormat`,
- `attr-dict` only carries discardable attributes for property-backed
- operations. Inherent attributes must be bound directly in the format or
- covered by `prop-dict`.
+ - Represents the attribute dictionary of the operation. Under the
+ default strict format rules, it contains only discardable attributes.
+ Inherent attributes must be bound directly in the format or covered by
+ `prop-dict`. The deprecated `useStrictPropertiesInAssemblyFormat = 0`
+ setting temporarily allows inherent attributes to mix with discardable
+ attributes in `attr-dict`.
* `attr-dict-with-keyword`
@@ -1142,9 +1139,8 @@ to:
directives.
1. Unless all non-attribute properties appear in the format, the `prop-dict`
directive must be present.
-1. For dialects that set `useStrictPropertiesInAssemblyFormat`, every inherent
- attribute and property must either appear in the format or be covered by the
- `prop-dict` directive.
+1. Every inherent attribute and property must either appear in the format or
+ be covered by the `prop-dict` directive.
1. The `attr-dict` directive must always be present.
1. Must not contain overlapping information; e.g. multiple instances of
'attr-dict', types, operands, etc.
diff --git a/mlir/docs/DefiningDialects/_index.md b/mlir/docs/DefiningDialects/_index.md
index d4ffd066a61cd..22d067c0a66f6 100644
--- a/mlir/docs/DefiningDialects/_index.md
+++ b/mlir/docs/DefiningDialects/_index.md
@@ -274,22 +274,20 @@ For a more detail description of the expected usages of this hook, view the deta
### Strict Property Assembly Formats
-Dialects can set `useStrictPropertiesInAssemblyFormat` to require declarative
-assembly formats for property-backed operations to account for all inherent
-attributes and properties:
-
-```tablegen
-def MyDialect : Dialect {
- let useStrictPropertiesInAssemblyFormat = 1;
-}
-```
-
-This mode is disabled by default for now. When enabled, an operation format must
+Declarative assembly formats for property-backed operations must account for
+all inherent attributes and properties by default. An operation format must
either bind every inherent attribute and property directly in the format or
include the `prop-dict` directive. Generated parsers also reject inherent
attributes that arrive through `attr-dict`, so `attr-dict` only carries
-discardable attributes for these formats. See the
-[declarative assembly format](Operations.md/#declarative-assembly-format)
+discardable attributes for these formats.
+
+The `useStrictPropertiesInAssemblyFormat` field is deprecated. Setting it to
+`0` temporarily opts a dialect into legacy behavior, allowing inherent
+attributes to mix with discardable attributes in `attr-dict`. Dialects using
+this setting should migrate their formats to bind inherent attributes directly
+or use `prop-dict`.
+
+See the [declarative assembly format](Operations.md/#declarative-assembly-format)
documentation for the corresponding format requirements.
### Default Attribute/Type Parsers and Printers
diff --git a/mlir/docs/ReleaseNotes.md b/mlir/docs/ReleaseNotes.md
index 16b93c8909670..e24b2790d8255 100644
--- a/mlir/docs/ReleaseNotes.md
+++ b/mlir/docs/ReleaseNotes.md
@@ -8,6 +8,18 @@ specifically, it is a snapshot of the MLIR development at the time of the releas
[TOC]
+## LLVM 24
+
+### Strict Property Assembly Formats
+
+Property-backed operations now use strict declarative assembly formats by
+default. Setting the dialect option `useStrictPropertiesInAssemblyFormat = 0`
+is deprecated and temporarily retains the legacy behavior. Dialects using
+this setting must migrate their declarative assembly formats to bind every
+inherent attribute and property directly or include `prop-dict`. Under the
+default rules, `attr-dict` contains only discardable attributes. See
+[the guide](DefiningDialects/_index.md/#strict-property-assembly-formats).
+
## LLVM 21
### GPU/NVVM Changes
diff --git a/mlir/examples/toy/Ch4/include/toy/Ops.td b/mlir/examples/toy/Ch4/include/toy/Ops.td
index e43cca419d847..ba751e0a01fbe 100644
--- a/mlir/examples/toy/Ch4/include/toy/Ops.td
+++ b/mlir/examples/toy/Ch4/include/toy/Ops.td
@@ -24,6 +24,7 @@ include "toy/ShapeInferenceInterface.td"
// can define our operations.
def Toy_Dialect : Dialect {
let name = "toy";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::mlir::toy";
}
diff --git a/mlir/examples/toy/Ch5/include/toy/Ops.td b/mlir/examples/toy/Ch5/include/toy/Ops.td
index 3aecebd98bd46..effd58aadc136 100644
--- a/mlir/examples/toy/Ch5/include/toy/Ops.td
+++ b/mlir/examples/toy/Ch5/include/toy/Ops.td
@@ -24,6 +24,7 @@ include "toy/ShapeInferenceInterface.td"
// can define our operations.
def Toy_Dialect : Dialect {
let name = "toy";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::mlir::toy";
}
diff --git a/mlir/examples/toy/Ch6/include/toy/Ops.td b/mlir/examples/toy/Ch6/include/toy/Ops.td
index b7818aafb7253..ca06b55e43c97 100644
--- a/mlir/examples/toy/Ch6/include/toy/Ops.td
+++ b/mlir/examples/toy/Ch6/include/toy/Ops.td
@@ -24,6 +24,7 @@ include "toy/ShapeInferenceInterface.td"
// can define our operations.
def Toy_Dialect : Dialect {
let name = "toy";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::mlir::toy";
}
diff --git a/mlir/examples/toy/Ch7/include/toy/Ops.td b/mlir/examples/toy/Ch7/include/toy/Ops.td
index 3f6c77dd79726..1dbbf7eda284a 100644
--- a/mlir/examples/toy/Ch7/include/toy/Ops.td
+++ b/mlir/examples/toy/Ch7/include/toy/Ops.td
@@ -24,6 +24,7 @@ include "toy/ShapeInferenceInterface.td"
// can define our operations.
def Toy_Dialect : Dialect {
let name = "toy";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::mlir::toy";
// We set this bit to generate a declaration of the `materializeConstant`
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td b/mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td
index 8dc4b3a81c334..639dbf6b4a128 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td
@@ -14,7 +14,6 @@ include "mlir/IR/DialectBase.td"
def AMDGPU_Dialect : Dialect {
let name = "amdgpu";
let cppNamespace = "::mlir::amdgpu";
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
The `AMDGPU` dialect provides wrappers around AMD-specific functionality
and LLVM intrinsics. These wrappers should be used in conjunction with
diff --git a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
index d37fc62e3ed51..6215d5c292630 100644
--- a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
+++ b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
@@ -26,7 +26,6 @@ include "mlir/Interfaces/SideEffectInterfaces.td"
def Affine_Dialect : Dialect {
let name = "affine";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::affine";
let hasConstantMaterializer = 1;
let dependentDialects = ["arith::ArithDialect", "ub::UBDialect"];
diff --git a/mlir/include/mlir/Dialect/Arith/IR/ArithBase.td b/mlir/include/mlir/Dialect/Arith/IR/ArithBase.td
index 71e198458d342..0c05c4db79bed 100644
--- a/mlir/include/mlir/Dialect/Arith/IR/ArithBase.td
+++ b/mlir/include/mlir/Dialect/Arith/IR/ArithBase.td
@@ -14,7 +14,6 @@ include "mlir/IR/OpBase.td"
def Arith_Dialect : Dialect {
let name = "arith";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::arith";
let description = [{
The arith dialect is intended to hold basic integer and floating point
diff --git a/mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td b/mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td
index fd0fa7ecf9b0d..ce86ff2cfd922 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td
+++ b/mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td
@@ -23,7 +23,6 @@ include "mlir/IR/OpBase.td"
def ArmNeon_Dialect : Dialect {
let name = "arm_neon";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::arm_neon";
// Note: this does not need to depend on LLVMDialect as long as functions in
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td b/mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td
index f937af9c35a71..ffafb2569310e 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td
@@ -23,7 +23,6 @@ include "mlir/Dialect/LLVMIR/LLVMOpBase.td"
def ArmSME_Dialect : Dialect {
let name = "arm_sme";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::arm_sme";
let summary = "Basic dialect to target Arm SME architectures";
let description = [{
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td b/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
index be4d9b123ac82..2f23404991799 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
@@ -22,7 +22,6 @@ include "mlir/Dialect/LLVMIR/LLVMOpBase.td"
def ArmSVE_Dialect : Dialect {
let name = "arm_sve";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::arm_sve";
let summary = "Basic dialect to target Arm SVE architectures";
let description = [{
diff --git a/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td b/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td
index f2c328a61e4cf..eb1d76a180fe2 100644
--- a/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td
+++ b/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td
@@ -21,7 +21,6 @@ include "mlir/IR/OpBase.td"
def AsyncDialect : Dialect {
let name = "async";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::async";
let summary = "Types and operations for async dialect";
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizationBase.td b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizationBase.td
index 2ef0c93be8bf2..ac19f878656b5 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizationBase.td
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizationBase.td
@@ -31,7 +31,6 @@ def Bufferization_Dialect : Dialect {
"affine::AffineDialect", "memref::MemRefDialect", "tensor::TensorDialect",
"arith::ArithDialect"
];
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
/// Verify an attribute from this dialect on the argument at 'argIndex' for
diff --git a/mlir/include/mlir/Dialect/Complex/IR/ComplexBase.td b/mlir/include/mlir/Dialect/Complex/IR/ComplexBase.td
index 4efe1bcc620c2..c8af498f44829 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/ComplexBase.td
+++ b/mlir/include/mlir/Dialect/Complex/IR/ComplexBase.td
@@ -14,7 +14,6 @@ include "mlir/IR/OpBase.td"
def Complex_Dialect : Dialect {
let name = "complex";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::complex";
let description = [{
The complex dialect is intended to hold complex numbers creation and
diff --git a/mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td b/mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
index 0e4c4eb78b94b..a441fd82546e3 100644
--- a/mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+++ b/mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
@@ -23,7 +23,6 @@ def ControlFlow_Dialect : Dialect {
let name = "cf";
let cppNamespace = "::mlir::cf";
let dependentDialects = ["arith::ArithDialect"];
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
This dialect contains low-level, i.e. non-region based, control flow
constructs. These constructs generally represent control flow directly
diff --git a/mlir/include/mlir/Dialect/DLTI/DLTIBase.td b/mlir/include/mlir/Dialect/DLTI/DLTIBase.td
index f7c9be4fd7880..3754f3699c7fd 100644
--- a/mlir/include/mlir/Dialect/DLTI/DLTIBase.td
+++ b/mlir/include/mlir/Dialect/DLTI/DLTIBase.td
@@ -76,7 +76,6 @@ def DLTI_Dialect : Dialect {
}];
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
def HasDefaultDLTIDataLayout : NativeOpTrait<"HasDefaultDLTIDataLayout"> {
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/EmitCBase.td b/mlir/include/mlir/Dialect/EmitC/IR/EmitCBase.td
index a7144df36045e..375dbcbce1d03 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/EmitCBase.td
+++ b/mlir/include/mlir/Dialect/EmitC/IR/EmitCBase.td
@@ -31,7 +31,6 @@ def EmitC_Dialect : Dialect {
let hasConstantMaterializer = 1;
let useDefaultTypePrinterParser = 1;
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
#endif // MLIR_DIALECT_EMITC_IR_EMITCBASE
diff --git a/mlir/include/mlir/Dialect/Func/IR/FuncOps.td b/mlir/include/mlir/Dialect/Func/IR/FuncOps.td
index d7a0d5fc4f277..a99147b380eb3 100644
--- a/mlir/include/mlir/Dialect/Func/IR/FuncOps.td
+++ b/mlir/include/mlir/Dialect/Func/IR/FuncOps.td
@@ -22,7 +22,6 @@ def Func_Dialect : Dialect {
let name = "func";
let cppNamespace = "::mlir::func";
let hasConstantMaterializer = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
// Base class for Func dialect ops.
diff --git a/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td b/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td
index 8f3cffcdf43fa..f75d3ae0bd02f 100644
--- a/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td
+++ b/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td
@@ -82,7 +82,6 @@ def GPU_Dialect : Dialect {
let dependentDialects = ["arith::ArithDialect"];
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
//===----------------------------------------------------------------------===//
diff --git a/mlir/include/mlir/Dialect/IRDL/IR/IRDL.td b/mlir/include/mlir/Dialect/IRDL/IR/IRDL.td
index f554358ed373d..e822969fc575e 100644
--- a/mlir/include/mlir/Dialect/IRDL/IR/IRDL.td
+++ b/mlir/include/mlir/Dialect/IRDL/IR/IRDL.td
@@ -74,7 +74,6 @@ def IRDL_Dialect : Dialect {
let name = "irdl";
let cppNamespace = "::mlir::irdl";
- let useStrictPropertiesInAssemblyFormat = 1;
}
#endif // MLIR_DIALECT_IRDL_IR_IRDL
diff --git a/mlir/include/mlir/Dialect/Index/IR/IndexDialect.td b/mlir/include/mlir/Dialect/Index/IR/IndexDialect.td
index df6087818cc8f..be0fea79ee392 100644
--- a/mlir/include/mlir/Dialect/Index/IR/IndexDialect.td
+++ b/mlir/include/mlir/Dialect/Index/IR/IndexDialect.td
@@ -83,7 +83,6 @@ def IndexDialect : Dialect {
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
#endif // INDEX_DIALECT
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td
index f48cb5385590b..864fc0f647bd1 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td
@@ -20,7 +20,6 @@ def LLVM_Dialect : Dialect {
let hasRegionArgAttrVerify = 1;
let hasRegionResultAttrVerify = 1;
let hasOperationAttrVerify = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let discardableAttrs = (ins
/// Attribute encoding size and type of GPU workgroup attributions.
diff --git a/mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.td b/mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.td
index c0f2ee062987e..025e093ebd8b6 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.td
@@ -21,7 +21,6 @@ def NVVM_Dialect : Dialect {
let cppNamespace = "::mlir::NVVM";
let dependentDialects = ["LLVM::LLVMDialect"];
let hasOperationAttrVerify = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
/// Get the name of the attribute used to annotate external kernel
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
index a05913bb2c15f..5e6cefd977f32 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
@@ -18,7 +18,6 @@ include "mlir/Dialect/LLVMIR/LLVMOpBase.td"
def ROCDL_Dialect : Dialect {
let name = "rocdl";
let cppNamespace = "::mlir::ROCDL";
- let useStrictPropertiesInAssemblyFormat = 1;
let dependentDialects = ["LLVM::LLVMDialect"];
let summary = "Dialect for wrapping LLVM AMDGPU backend intrinsics and attributes";
let hasOperationAttrVerify = 1;
diff --git a/mlir/include/mlir/Dialect/LLVMIR/VCIXOps.td b/mlir/include/mlir/Dialect/LLVMIR/VCIXOps.td
index 02f80bbd56451..27d9a32dd8e03 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/VCIXOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/VCIXOps.td
@@ -31,7 +31,6 @@ def VCIX_Dialect : Dialect {
let name = "vcix";
let cppNamespace = "::mlir::vcix";
let dependentDialects = ["LLVM::LLVMDialect"];
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
The SiFive Vector Coprocessor Interface (VCIX) provides a flexible mechanism
to extend application processors with custom coprocessors and
diff --git a/mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td
index fdf6263094bb2..995bb758924c2 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td
@@ -37,7 +37,6 @@ def XeVM_Dialect : Dialect {
}];
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
class XeVM_Attr<string attrName, string attrMnemonic, list<Trait> traits = []>
diff --git a/mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td b/mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
index 5d53dbc461317..85857d3c11206 100644
--- a/mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
+++ b/mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
@@ -43,7 +43,6 @@ def Linalg_Dialect : Dialect {
"tensor::TensorDialect",
];
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let hasCanonicalizer = 1;
let hasOperationAttrVerify = 1;
let hasConstantMaterializer = 1;
diff --git a/mlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td b/mlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td
index 5ed346aeade5d..a585059020eaf 100644
--- a/mlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td
+++ b/mlir/include/mlir/Dialect/MLProgram/IR/MLProgramBase.td
@@ -13,7 +13,6 @@ include "mlir/IR/OpBase.td"
def MLProgram_Dialect : Dialect {
let name = "ml_program";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::ml_program";
let description = [{
The MLProgram dialect contains structural operations and types for
diff --git a/mlir/include/mlir/Dialect/MPI/IR/MPI.td b/mlir/include/mlir/Dialect/MPI/IR/MPI.td
index 29fd14b3f35f0..ba422273d5354 100644
--- a/mlir/include/mlir/Dialect/MPI/IR/MPI.td
+++ b/mlir/include/mlir/Dialect/MPI/IR/MPI.td
@@ -15,7 +15,6 @@ include "mlir/IR/EnumAttr.td"
def MPI_Dialect : Dialect {
let name = "mpi";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::mpi";
let description = [{
This dialect models the Message Passing Interface (MPI), version
diff --git a/mlir/include/mlir/Dialect/Math/IR/MathBase.td b/mlir/include/mlir/Dialect/Math/IR/MathBase.td
index 162284a1d8363..19fb39d9fd51d 100644
--- a/mlir/include/mlir/Dialect/Math/IR/MathBase.td
+++ b/mlir/include/mlir/Dialect/Math/IR/MathBase.td
@@ -10,7 +10,6 @@
include "mlir/IR/OpBase.td"
def Math_Dialect : Dialect {
let name = "math";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::math";
let description = [{
The math dialect is intended to hold mathematical operations on integer and
diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td b/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td
index 82bd30fedf364..20dd45272898d 100644
--- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td
+++ b/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td
@@ -14,7 +14,6 @@ include "mlir/IR/OpBase.td"
def MemRef_Dialect : Dialect {
let name = "memref";
let cppNamespace = "::mlir::memref";
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
The `memref` dialect is intended to hold core memref creation and
manipulation ops, which are not strongly associated with any particular
diff --git a/mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td
index d43a8c38fd1e0..1c0d7bd1113ea 100644
--- a/mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td
+++ b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPU.td
@@ -30,7 +30,6 @@ def NVGPU_Dialect : Dialect {
let useDefaultTypePrinterParser = 1;
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
/// Return true if the given MemRefType has an integer address
diff --git a/mlir/include/mlir/Dialect/OpenACC/OpenACCBase.td b/mlir/include/mlir/Dialect/OpenACC/OpenACCBase.td
index 675574547cebc..5810759c54298 100644
--- a/mlir/include/mlir/Dialect/OpenACC/OpenACCBase.td
+++ b/mlir/include/mlir/Dialect/OpenACC/OpenACCBase.td
@@ -19,7 +19,6 @@ include "mlir/IR/AttrTypeBase.td"
def OpenACC_Dialect : Dialect {
let name = "acc";
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let useDefaultTypePrinterParser = 1;
let cppNamespace = "::mlir::acc";
let dependentDialects = ["::mlir::memref::MemRefDialect",
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.td
index dbc851a5e297c..2dfee7120e82a 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.td
@@ -16,7 +16,6 @@ def OpenMP_Dialect : Dialect {
let cppNamespace = "::mlir::omp";
let dependentDialects = ["::mlir::LLVM::LLVMDialect, ::mlir::func::FuncDialect"];
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let useDefaultTypePrinterParser = 1;
let hasOperationAttrVerify = 1;
}
diff --git a/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td b/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td
index b98940560ef52..d405bec26634c 100644
--- a/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td
+++ b/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td
@@ -63,7 +63,6 @@ def PDL_Dialect : Dialect {
}];
let name = "pdl";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::pdl";
let useDefaultTypePrinterParser = 1;
diff --git a/mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td b/mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
index 752ba8e3c4e97..d60cd326a7956 100644
--- a/mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
+++ b/mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
@@ -36,7 +36,6 @@ def PDLInterp_Dialect : Dialect {
}];
let name = "pdl_interp";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::pdl_interp";
let dependentDialects = ["pdl::PDLDialect"];
let extraClassDeclaration = [{
diff --git a/mlir/include/mlir/Dialect/Ptr/IR/PtrDialect.td b/mlir/include/mlir/Dialect/Ptr/IR/PtrDialect.td
index bf1f1a3c89f5a..c98df5775195a 100644
--- a/mlir/include/mlir/Dialect/Ptr/IR/PtrDialect.td
+++ b/mlir/include/mlir/Dialect/Ptr/IR/PtrDialect.td
@@ -20,7 +20,6 @@ include "mlir/IR/OpBase.td"
def Ptr_Dialect : Dialect {
let name = "ptr";
- let useStrictPropertiesInAssemblyFormat = 1;
let summary = "Pointer dialect";
let description = [{
The pointer dialect provides types and operations for representing and
diff --git a/mlir/include/mlir/Dialect/Quant/IR/QuantBase.td b/mlir/include/mlir/Dialect/Quant/IR/QuantBase.td
index f11717f835f9b..b129e4b57e353 100644
--- a/mlir/include/mlir/Dialect/Quant/IR/QuantBase.td
+++ b/mlir/include/mlir/Dialect/Quant/IR/QuantBase.td
@@ -17,7 +17,6 @@ include "mlir/IR/OpBase.td"
def Quant_Dialect : Dialect {
let name = "quant";
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
The `quant` dialect offers a framework for defining and manipulating
quantized values. Central to this framework is the `!quant.uniform` data
diff --git a/mlir/include/mlir/Dialect/SCF/IR/SCFOps.td b/mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
index b0a34989b6433..31330be70ee2d 100644
--- a/mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
+++ b/mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
@@ -27,7 +27,6 @@ include "mlir/Interfaces/ViewLikeInterface.td"
def SCF_Dialect : Dialect {
let name = "scf";
let cppNamespace = "::mlir::scf";
- let useStrictPropertiesInAssemblyFormat = 1;
let description = [{
The `scf` (structured control flow) dialect contains operations that
diff --git a/mlir/include/mlir/Dialect/SMT/IR/SMTDialect.td b/mlir/include/mlir/Dialect/SMT/IR/SMTDialect.td
index 4b33b07da30c1..00f170659946e 100644
--- a/mlir/include/mlir/Dialect/SMT/IR/SMTDialect.td
+++ b/mlir/include/mlir/Dialect/SMT/IR/SMTDialect.td
@@ -13,7 +13,6 @@ include "mlir/IR/DialectBase.td"
def SMTDialect : Dialect {
let name = "smt";
- let useStrictPropertiesInAssemblyFormat = 1;
let summary = "a dialect that models satisfiability modulo theories";
let cppNamespace = "mlir::smt";
diff --git a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
index 47dfd6ece4f5a..a8073d7c848d6 100644
--- a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
+++ b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
@@ -52,7 +52,6 @@ def SPIRV_Dialect : Dialect {
let hasOperationAttrVerify = 1;
let hasRegionArgAttrVerify = 1;
let hasRegionResultAttrVerify = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
void registerAttributes();
diff --git a/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td b/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
index d03fb094312a2..9c0257954d3e8 100644
--- a/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
+++ b/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
@@ -22,7 +22,6 @@ include "mlir/IR/OpBase.td"
def ShapeDialect : Dialect {
let name = "shape";
- let useStrictPropertiesInAssemblyFormat = 1;
let summary = "Types and operations for shape dialect";
let description = [{
diff --git a/mlir/include/mlir/Dialect/Shard/IR/ShardBase.td b/mlir/include/mlir/Dialect/Shard/IR/ShardBase.td
index c398e83f924fe..84c426252f4ab 100644
--- a/mlir/include/mlir/Dialect/Shard/IR/ShardBase.td
+++ b/mlir/include/mlir/Dialect/Shard/IR/ShardBase.td
@@ -21,7 +21,6 @@ include "mlir/IR/EnumAttr.td"
def Shard_Dialect : Dialect {
let name = "shard";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::shard";
let description = [{
diff --git a/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorBase.td b/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorBase.td
index e29358c6aa558..74e6783e260fa 100644
--- a/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorBase.td
+++ b/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorBase.td
@@ -91,7 +91,6 @@ def SparseTensor_Dialect : Dialect {
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
let hasConstantMaterializer = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
#endif // SPARSETENSOR_BASE
diff --git a/mlir/include/mlir/Dialect/Tensor/IR/TensorBase.td b/mlir/include/mlir/Dialect/Tensor/IR/TensorBase.td
index 900ad5f40830c..9d0add92737f3 100644
--- a/mlir/include/mlir/Dialect/Tensor/IR/TensorBase.td
+++ b/mlir/include/mlir/Dialect/Tensor/IR/TensorBase.td
@@ -13,7 +13,6 @@ include "mlir/IR/OpBase.td"
def Tensor_Dialect : Dialect {
let name = "tensor";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::tensor";
let description = [{
diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td b/mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
index 6a8056769316a..fa0a1dbd60c46 100644
--- a/mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
+++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
@@ -53,7 +53,6 @@ def Tosa_Dialect : Dialect {
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
//===----------------------------------------------------------------------===//
diff --git a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
index d53761074db21..ce0ad30ad2c8c 100644
--- a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
+++ b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
@@ -19,7 +19,6 @@ def Transform_Dialect : Dialect {
let cppNamespace = "::mlir::transform";
let hasOperationAttrVerify = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
/// Symbol name for the default entry point "named sequence".
constexpr const static ::llvm::StringLiteral
diff --git a/mlir/include/mlir/Dialect/UB/IR/UBOps.td b/mlir/include/mlir/Dialect/UB/IR/UBOps.td
index 666301799256b..1bff39add691e 100644
--- a/mlir/include/mlir/Dialect/UB/IR/UBOps.td
+++ b/mlir/include/mlir/Dialect/UB/IR/UBOps.td
@@ -20,7 +20,6 @@ def UB_Dialect : Dialect {
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useStrictPropertiesInAssemblyFormat = 1;
}
// Base class for UB dialect attributes.
diff --git a/mlir/include/mlir/Dialect/Vector/IR/Vector.td b/mlir/include/mlir/Dialect/Vector/IR/Vector.td
index f5e76c168f335..5125ae7c13717 100644
--- a/mlir/include/mlir/Dialect/Vector/IR/Vector.td
+++ b/mlir/include/mlir/Dialect/Vector/IR/Vector.td
@@ -18,7 +18,6 @@ include "mlir/IR/OpBase.td"
def Vector_Dialect : Dialect {
let name = "vector";
let cppNamespace = "::mlir::vector";
- let useStrictPropertiesInAssemblyFormat = 1;
let useDefaultAttributePrinterParser = 1;
let hasConstantMaterializer = 1;
diff --git a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
index 0e93fdd060962..f2777a7b155ed 100644
--- a/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
+++ b/mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSABase.td
@@ -14,7 +14,6 @@ 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/X86/X86.td b/mlir/include/mlir/Dialect/X86/X86.td
index 681887e894260..193cbdfc1424e 100644
--- a/mlir/include/mlir/Dialect/X86/X86.td
+++ b/mlir/include/mlir/Dialect/X86/X86.td
@@ -25,7 +25,6 @@ include "mlir/IR/BuiltinTypes.td"
def X86_Dialect : Dialect {
let name = "x86";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir::x86";
let useDefaultTypePrinterParser = 1;
diff --git a/mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td b/mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td
index 652cf18ade580..b1490c7742a26 100644
--- a/mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td
+++ b/mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td
@@ -36,7 +36,6 @@ def XeGPU_Dialect : Dialect {
let useDefaultTypePrinterParser = true;
let useDefaultAttributePrinterParser = true;
- let useStrictPropertiesInAssemblyFormat = 1;
let extraClassDeclaration = [{
/// Checks if the given memref type represents shared local memory (SLM).
diff --git a/mlir/include/mlir/IR/BuiltinDialect.td b/mlir/include/mlir/IR/BuiltinDialect.td
index 35ea65671a7f8..c770dd50f3622 100644
--- a/mlir/include/mlir/IR/BuiltinDialect.td
+++ b/mlir/include/mlir/IR/BuiltinDialect.td
@@ -20,7 +20,6 @@ def Builtin_Dialect : Dialect {
let summary =
"A dialect containing the builtin Attributes, Operations, and Types";
let name = "builtin";
- let useStrictPropertiesInAssemblyFormat = 1;
let cppNamespace = "::mlir";
let useDefaultAttributePrinterParser = 0;
let useDefaultTypePrinterParser = 0;
diff --git a/mlir/include/mlir/IR/DialectBase.td b/mlir/include/mlir/IR/DialectBase.td
index 3b41e841eb3ad..da669c6ada639 100644
--- a/mlir/include/mlir/IR/DialectBase.td
+++ b/mlir/include/mlir/IR/DialectBase.td
@@ -55,11 +55,12 @@ class Dialect {
// dialect declaration.
code extraClassDeclaration = "";
- // If this dialect should require declarative parsers for property-backed
- // operations to bind every inherent attribute and property directly in the
- // custom assembly format, or otherwise cover them with `prop-dict`. This
- // stricter mode is disabled by default for now.
- bit useStrictPropertiesInAssemblyFormat = 0;
+ // Require declarative parsers for property-backed operations to bind every
+ // inherent attribute and property directly in the custom assembly format,
+ // or otherwise cover them with `prop-dict`.
+ // Deprecated: setting this to 0 temporarily opts into legacy behavior that
+ // mixes inherent and discardable attributes in `attr-dict`.
+ bit useStrictPropertiesInAssemblyFormat = 1;
// If this dialect overrides the hook for materializing constants.
bit hasConstantMaterializer = 0;
diff --git a/mlir/test/lib/Dialect/Test/TestDialect.td b/mlir/test/lib/Dialect/Test/TestDialect.td
index 37a263f1d10b8..ed0bedaced126 100644
--- a/mlir/test/lib/Dialect/Test/TestDialect.td
+++ b/mlir/test/lib/Dialect/Test/TestDialect.td
@@ -13,6 +13,8 @@ include "mlir/IR/OpBase.td"
def Test_Dialect : Dialect {
let name = "test";
+ // Keep legacy assembly format coverage for test operations.
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "::test";
let hasCanonicalizer = 1;
let hasConstantMaterializer = 1;
diff --git a/mlir/test/mlir-tblgen/op-format-invalid.td b/mlir/test/mlir-tblgen/op-format-invalid.td
index c13bbedce3785..dc0d1688cc8ec 100644
--- a/mlir/test/mlir-tblgen/op-format-invalid.td
+++ b/mlir/test/mlir-tblgen/op-format-invalid.td
@@ -8,10 +8,11 @@ include "mlir/Interfaces/InferTypeOpInterface.td"
def TestDialect : Dialect {
let name = "test";
+ // Exercise the legacy assembly format behavior.
+ let useStrictPropertiesInAssemblyFormat = 0;
}
def TestStrictPropertiesDialect : Dialect {
let name = "test_strict_properties";
- let useStrictPropertiesInAssemblyFormat = 1;
}
class TestFormat_Op<string fmt, list<Trait> traits = []>
: Op<TestDialect, "format_op", traits> {
diff --git a/mlir/test/mlir-tblgen/op-format.td b/mlir/test/mlir-tblgen/op-format.td
index 54add551c1f18..f98632886449d 100644
--- a/mlir/test/mlir-tblgen/op-format.td
+++ b/mlir/test/mlir-tblgen/op-format.td
@@ -6,10 +6,11 @@ include "mlir/IR/EnumAttr.td"
def TestDialect : Dialect {
let name = "test";
+ // Exercise the legacy assembly format behavior.
+ let useStrictPropertiesInAssemblyFormat = 0;
}
def TestStrictPropertiesDialect : Dialect {
let name = "test_strict_properties";
- let useStrictPropertiesInAssemblyFormat = 1;
}
class TestFormat_Op<string fmt, list<Trait> traits = []>
: Op<TestDialect, "format_op", traits> {
diff --git a/mlir/test/python/python_test_ops.td b/mlir/test/python/python_test_ops.td
index 96e951424ca51..3624506a23a6d 100644
--- a/mlir/test/python/python_test_ops.td
+++ b/mlir/test/python/python_test_ops.td
@@ -15,6 +15,7 @@ include "mlir/Interfaces/InferTypeOpInterface.td"
def Python_Test_Dialect : Dialect {
let name = "python_test";
+ let useStrictPropertiesInAssemblyFormat = 0;
let cppNamespace = "python_test";
let useDefaultTypePrinterParser = 1;
More information about the flang-commits
mailing list