mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 01:16:05 +00:00

Add `gen-type-constraint-decls` and `gen-type-constraint-defs`, which generate public C++ functions for type constraints. The name of the C++ function is specified in the `cppFunctionName` field. Type constraints are typically used for op/type/attribute verification. They are also sometimes called from builders and transformations. Until now, this required duplicating the check in C++. Note: This commit just adds the option for type constraints, but attribute constraints could be supported in the same way. Alternatives considered: 1. The C++ functions could also be generated as part of `gen-typedef-decls/defs`, but that can be confusing because type constraints may rely on type definitions from multiple `.td` files. `#include`s could cause duplicate definitions of the same type constraint. 2. The C++ functions could also be generated as static member functions of dialects, but they don't really belong to a dialect. (Because they may rely on type definitions from multiple dialects.)
73 lines
1.4 KiB
CMake
73 lines
1.4 KiB
CMake
if(MLIR_ENABLE_PDL_IN_PATTERNMATCH)
|
|
set(pdl_src
|
|
PDL/PDLPatternMatch.cpp
|
|
)
|
|
endif()
|
|
|
|
add_mlir_library(MLIRIR
|
|
AffineExpr.cpp
|
|
AffineMap.cpp
|
|
AsmPrinter.cpp
|
|
Attributes.cpp
|
|
AttrTypeSubElements.cpp
|
|
Block.cpp
|
|
Builders.cpp
|
|
BuiltinAttributeInterfaces.cpp
|
|
BuiltinAttributes.cpp
|
|
BuiltinDialect.cpp
|
|
BuiltinDialectBytecode.cpp
|
|
BuiltinTypes.cpp
|
|
BuiltinTypeInterfaces.cpp
|
|
Diagnostics.cpp
|
|
Dialect.cpp
|
|
DialectResourceBlobManager.cpp
|
|
Dominance.cpp
|
|
ExtensibleDialect.cpp
|
|
IntegerSet.cpp
|
|
Location.cpp
|
|
MLIRContext.cpp
|
|
ODSSupport.cpp
|
|
Operation.cpp
|
|
OperationSupport.cpp
|
|
PatternMatch.cpp
|
|
Region.cpp
|
|
RegionKindInterface.cpp
|
|
SymbolTable.cpp
|
|
TensorEncoding.cpp
|
|
Types.cpp
|
|
TypeRange.cpp
|
|
TypeUtilities.cpp
|
|
Unit.cpp
|
|
Value.cpp
|
|
ValueRange.cpp
|
|
Verifier.cpp
|
|
Visitors.cpp
|
|
${pdl_src}
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
|
|
|
|
DEPENDS
|
|
MLIRBuiltinAttributesIncGen
|
|
MLIRBuiltinAttributeInterfacesIncGen
|
|
MLIRBuiltinDialectBytecodeIncGen
|
|
MLIRBuiltinDialectIncGen
|
|
MLIRBuiltinLocationAttributesIncGen
|
|
MLIRBuiltinOpsIncGen
|
|
MLIRBuiltinTypesIncGen
|
|
MLIRBuiltinTypeConstraintsIncGen
|
|
MLIRBuiltinTypeInterfacesIncGen
|
|
MLIRCallInterfacesIncGen
|
|
MLIRCastInterfacesIncGen
|
|
MLIRDataLayoutInterfacesIncGen
|
|
MLIROpAsmInterfaceIncGen
|
|
MLIRRegionKindInterfaceIncGen
|
|
MLIRSideEffectInterfacesIncGen
|
|
MLIRSymbolInterfacesIncGen
|
|
MLIRTensorEncodingIncGen
|
|
|
|
LINK_LIBS PUBLIC
|
|
MLIRSupport
|
|
)
|
|
|