https://github.com/joker-eph updated https://github.com/llvm/llvm-project/pull/225742
>From aeaa22013440fb2043e3f898bb2c75125b0fb3a5 Mon Sep 17 00:00:00 2001 From: Mehdi Amini <[email protected]> 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. Keep the test dialect and the Flang and CIR dialects in legacy mode where their formats still rely on it, 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/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 | 12 ++++++---- 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 ++- 60 files changed, 38 insertions(+), 80 deletions(-) diff --git a/clang/include/clang/CIR/Dialect/IR/CIRDialect.td b/clang/include/clang/CIR/Dialect/IR/CIRDialect.td index b2a2707a67b667..aee862afc02b43 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 0cabd55f1ea5ab..984c457f048311 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 5a7c85e7883fa3..5409b81b59aa3b 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 415bf7a6a95fec..3ac9a12d5cf55e 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 f8be6a86a79fec..c4dccc9b77dba9 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 1f46b69561d68c..a0764077289aa0 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 5615af678d3392..f991f5308c5ae4 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 d4ffd066a61cd8..22d067c0a66f6b 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/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td b/mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUBase.td index 8dc4b3a81c3345..639dbf6b4a128b 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 d37fc62e3ed515..6215d5c2926304 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 71e198458d3427..0c05c4db79bed6 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 fd0fa7ecf9b0da..ce86ff2cfd9222 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 f937af9c35a71e..ffafb2569310ed 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 be4d9b123ac820..2f23404991799e 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 f2c328a61e4cf0..eb1d76a180fe24 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 2ef0c93be8bf22..ac19f878656b56 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 4efe1bcc620c2f..c8af498f448295 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 0e4c4eb78b94b3..a441fd82546e39 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 f7c9be4fd78809..3754f3699c7fdc 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 a7144df36045e9..375dbcbce1d036 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 d7a0d5fc4f277a..a99147b380eb33 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 8f3cffcdf43fa7..f75d3ae0bd02fa 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 f554358ed373d4..e822969fc575eb 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 df6087818cc8f4..be0fea79ee3920 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 f48cb5385590b1..864fc0f647bd1d 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 c0f2ee062987e9..025e093ebd8b61 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 a05913bb2c15ff..5e6cefd977f328 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 02f80bbd564513..27d9a32dd8e031 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 fdf6263094bb22..995bb758924c2f 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 5d53dbc4613177..85857d3c11206b 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 5ed346aeade5db..a585059020eaf6 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 29fd14b3f35f07..ba422273d5354d 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 162284a1d8363a..19fb39d9fd51d5 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 82bd30fedf3641..20dd45272898dc 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 d43a8c38fd1e01..1c0d7bd1113ea6 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 675574547cebc3..5810759c54298d 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 dbc851a5e297c2..2dfee7120e82af 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 b98940560ef52c..d405bec26634c5 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 752ba8e3c4e975..d60cd326a79560 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 bf1f1a3c89f5af..c98df5775195ad 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 f11717f835f9b0..b129e4b57e3535 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 b0a34989b64338..31330be70ee2d9 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 4b33b07da30c13..00f170659946ef 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 47dfd6ece4f5a8..a8073d7c848d69 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 d03fb094312a23..9c0257954d3e87 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 c398e83f924fe9..84c426252f4ab5 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 e29358c6aa5588..74e6783e260faf 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 900ad5f40830c0..9d0add92737f3c 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 6a8056769316ae..fa0a1dbd60c461 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 d53761074db21e..ce0ad30ad2c8c3 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 666301799256bc..1bff39add691e8 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 f5e76c168f3351..5125ae7c137178 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 0e93fdd0609625..f2777a7b155edd 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 681887e894260c..193cbdfc1424ee 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 652cf18ade5802..b1490c7742a269 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 35ea65671a7f88..c770dd50f3622a 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 3b41e841eb3adb..f79865483f550f 100644 --- a/mlir/include/mlir/IR/DialectBase.td +++ b/mlir/include/mlir/IR/DialectBase.td @@ -55,11 +55,13 @@ 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 37a263f1d10b8b..ed0bedaced126d 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 c13bbedce37856..dc0d1688cc8ec6 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 54add551c1f189..f98632886449d1 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> { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
