As mentioned in https://discourse.llvm.org/t/psa-new-improved-fold-method-signature-has-landed-please-update-your-downstream-projects/67618, it has now been about one month since the new fold API has been introduced.
Any downstream users that have not yet switched, nor explicitly set useFoldAPI to kEmitRawAttributesFolder will experience a build break after this patch, requiring them to either switch to the new API or explicitly use the old one and live with the warning set by TableGen.
Differential Revision: https://reviews.llvm.org/D143497
def fircg_Dialect : Dialect {
let name = "fircg";
let cppNamespace = "::fir::cg";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for FIR CG operations.
// supported by some FIR operations.
"arith::ArithDialect"
];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // FORTRAN_DIALECT_FIR_DIALECT
let useDefaultTypePrinterParser = 1;
let cppNamespace = "hlfir";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
}];
let cppNamespace = "::mlir::standalone";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
def Toy_Dialect : Dialect {
let name = "toy";
let cppNamespace = "::mlir::toy";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
def Toy_Dialect : Dialect {
let name = "toy";
let cppNamespace = "::mlir::toy";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
def Toy_Dialect : Dialect {
let name = "toy";
let cppNamespace = "::mlir::toy";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
def Toy_Dialect : Dialect {
let name = "toy";
let cppNamespace = "::mlir::toy";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
def Toy_Dialect : Dialect {
let name = "toy";
let cppNamespace = "::mlir::toy";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
// and printing hooks.
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for toy dialect operations. This operation inherits from the base
"arith::ArithDialect"
];
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html
}];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
let cppNamespace = "mlir";
let hasConstantMaterializer = 1;
let dependentDialects = ["arith::ArithDialect"];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for Affine dialect ops.
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// The predicate indicates the type of the comparison to perform:
let name = "arm_neon";
let cppNamespace = "::mlir::arm_neon";
- let useFoldAPI = kEmitFoldAdaptorFolder;
// Note: this does not need to depend on LLVMDialect as long as functions in
// this dialect (such as canonicalization) do not produce entities belonging
scalable vector operations.
}];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
}];
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// The name of a unit attribute on funcs that are allowed to have a
kEscapeAttrName = "bufferization.escape";
}];
let hasOperationAttrVerify = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // BUFFERIZATION_BASE
let dependentDialects = ["arith::ArithDialect"];
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // COMPLEX_BASE
on SSA blocks of a control flow graph.
}];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
class CF_Op<string mnemonic, list<Trait> traits = []> :
}];
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
def DLTI_DataLayoutEntryAttr : DialectAttr<
let hasConstantMaterializer = 1;
let useDefaultTypePrinterParser = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // MLIR_DIALECT_EMITC_IR_EMITCBASE
let cppNamespace = "::mlir::func";
let dependentDialects = ["cf::ControlFlowDialect"];
let hasConstantMaterializer = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for Func dialect ops.
let dependentDialects = ["arith::ArithDialect"];
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // INDEX_DIALECT
let hasRegionArgAttrVerify = 1;
let hasRegionResultAttrVerify = 1;
let hasOperationAttrVerify = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Name of the data layout attributes.
let cppNamespace = "::mlir::NVVM";
let dependentDialects = ["LLVM::LLVMDialect"];
let hasOperationAttrVerify = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Get the name of the attribute used to annotate external kernel
let cppNamespace = "::mlir::ROCDL";
let dependentDialects = ["LLVM::LLVMDialect"];
let hasOperationAttrVerify = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Get the name of the attribute used to annotate external kernel
let hasCanonicalizer = 1;
let hasOperationAttrVerify = 1;
let hasConstantMaterializer = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Attribute name used to to memoize indexing maps for named ops.
constexpr const static ::llvm::StringLiteral
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // MLPROGRAM_BASE
```
}];
let hasConstantMaterializer = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // MATH_BASE
}];
let dependentDialects = ["arith::ArithDialect"];
let hasConstantMaterializer = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // MEMREF_BASE
}];
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Return true if the given MemRefType has an integer address
}];
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let cppNamespace = "::mlir::acc";
}
let cppNamespace = "::mlir::omp";
let dependentDialects = ["::mlir::LLVM::LLVMDialect"];
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// OmpCommon requires definition of OpenACC_Dialect.
let cppNamespace = "::mlir::pdl";
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
void registerTypes();
}];
let name = "pdl_interp";
let cppNamespace = "::mlir::pdl_interp";
let dependentDialects = ["pdl::PDLDialect"];
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Returns the name of the function containing the matcher code. This
/// function is called by the interpreter when matching an operation.
let cppNamespace = "::mlir::quant";
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
let name = "scf";
let cppNamespace = "::mlir::scf";
let dependentDialects = ["arith::ArithDialect"];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for SCF dialect ops.
let cppNamespace = "::mlir::spirv";
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let hasConstantMaterializer = 1;
let hasOperationAttrVerify = 1;
let hasRegionArgAttrVerify = 1;
let useDefaultTypePrinterParser = 1;
let hasConstantMaterializer = 1;
let hasOperationAttrVerify = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
class Shape_Type<string name, string typeMnemonic> : TypeDef<ShapeDialect, name> {
let useDefaultAttributePrinterParser = 1;
let useDefaultTypePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // SPARSETENSOR_BASE
let hasCanonicalizer = 1;
let hasConstantMaterializer = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let dependentDialects = [
"AffineDialect",
"arith::ArithDialect",
let cppNamespace = "mlir::tosa";
let hasConstantMaterializer = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
"::mlir::pdl_interp::PDLInterpDialect",
];
- let useFoldAPI = kEmitFoldAdaptorFolder;
let extraClassDeclaration = [{
/// Returns the named PDL constraint functions available in the dialect
let useDefaultAttributePrinterParser = 1;
let hasConstantMaterializer = 1;
let dependentDialects = ["arith::ArithDialect"];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
// Base class for Vector dialect ops.
def X86Vector_Dialect : Dialect {
let name = "x86vector";
let cppNamespace = "::mlir::x86vector";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
//===----------------------------------------------------------------------===//
public:
}];
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // BUILTIN_BASE
bit isExtensible = 0;
// Fold API to use for operations in this dialect.
- EmitFolderBase useFoldAPI = kEmitRawAttributesFolder;
+ EmitFolderBase useFoldAPI = kEmitFoldAdaptorFolder;
}
#endif // DIALECTBASE_TD
let hasNonDefaultDestructor = 1;
let useDefaultTypePrinterParser = 0;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
let isExtensible = 1;
let dependentDialects = ["::mlir::DLTIDialect"];
def Test_Dialect : Dialect {
let name = "test_dialect";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
def OpTraitA : NativeOpTrait<"OpTraitA">, Deprecated<"use `bar` instead">;
def Test_Dialect : Dialect {
let name = "test";
let cppNamespace = "NS";
+ let useFoldAPI = kEmitRawAttributesFolder;
}
class NS_Op<string mnemonic, list<Trait> traits> :
Op<Test_Dialect, mnemonic, traits>;
def TestWithNewFold_Dialect : Dialect {
let name = "test";
let cppNamespace = "::mlir::testWithFold";
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
def NS_MOp : Op<TestWithNewFold_Dialect, "op_with_single_result_and_fold_adaptor_fold", []> {
let useDefaultTypePrinterParser = 1;
let useDefaultAttributePrinterParser = 1;
- let useFoldAPI = kEmitFoldAdaptorFolder;
}
class TestType<string name, string typeMnemonic>