llvm-project/mlir/tools/mlir-tblgen
River Riddle 76f3c2f3f3 [mlir][Pattern] Add better support for using interfaces/traits to match root operations in rewrite patterns
To match an interface or trait, users currently have to use the `MatchAny` tag. This tag can be quite problematic for compile time for things like the canonicalizer, as the `MatchAny` patterns may get applied to  *every* operation. This revision adds better support by bucketing interface/trait patterns based on which registered operations have them registered. This means that moving forward we will only attempt to match these patterns to operations that have this interface registered. Two simplify defining patterns that match traits and interfaces, two new utility classes have been added: OpTraitRewritePattern and OpInterfaceRewritePattern.

Differential Revision: https://reviews.llvm.org/D98986
2021-03-23 14:05:33 -07:00
..
AttrOrTypeDefGen.cpp [mlir][IR] Move the remaining builtin attributes to ODS. 2021-03-16 16:31:53 -07:00
CMakeLists.txt [mlir] Add support for generating Attribute classes for ODS 2021-03-03 16:41:49 -08:00
DialectGen.cpp [mlir][ODS] Use StringLiteral instead of StringRef when applicable 2021-03-03 16:15:12 +03:00
DirectiveCommonGen.cpp [mlir][openacc] Use TableGen information for default enum 2021-01-12 09:42:42 -05:00
DocGenUtilities.h Mass update the MLIR license header to mention "Part of the LLVM project" 2020-01-26 03:58:30 +00:00
EnumsGen.cpp [mlir][ODS] Support specialized Attribute class for Enums 2021-03-17 16:44:24 +03:00
LLVMIRConversionGen.cpp [mlir] generate enum translation functions with unused attribute 2021-02-18 09:44:40 +01:00
LLVMIRIntrinsicGen.cpp [mlir] Add an AccessGroup attribute to load/store LLVM dialect ops and generate the access_group LLVM metadata. 2021-03-04 18:17:23 +01:00
OpDefinitionsGen.cpp [ODS] Implement a new 'hasCanonicalizeMethod' bit for cann patterns. 2021-03-23 13:45:45 -07:00
OpDocGen.cpp [mlir][docs] Remove the BuiltinDialect documentation from langref and generate it from ODS 2021-03-19 18:21:33 -07:00
OpFormatGen.cpp [mlir][OpAsmFormat] Add support for an "else" group on optional elements 2021-03-22 18:19:23 -07:00
OpFormatGen.h [mlir] Add initial support for parsing a declarative operation assembly format 2020-01-30 11:43:40 -08:00
OpInterfacesGen.cpp [mlir] better formatting in interface docs 2021-03-15 11:10:32 +01:00
OpPythonBindingGen.cpp [mlir][python] Reorganize MLIR python into namespace packages. 2021-03-08 23:01:34 -08:00
PassCAPIGen.cpp Add basic Python bindings for the PassManager and bind libTransforms 2020-11-10 19:55:21 +00:00
PassDocGen.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00
PassGen.cpp [mlir][ODS] Use StringLiteral instead of StringRef when applicable 2021-03-03 16:15:12 +03:00
RewriterGen.cpp [mlir][Pattern] Add better support for using interfaces/traits to match root operations in rewrite patterns 2021-03-23 14:05:33 -07:00
SPIRVUtilsGen.cpp [mlir] Mark LogicalResult as LLVM_NODISCARD 2021-02-04 15:10:10 -08:00
StructsGen.cpp Revert "Revert "Reorder MLIRContext location in BuiltinAttributes.h"" 2021-02-08 10:39:58 +01:00
mlir-tblgen.cpp Mass update the MLIR license header to mention "Part of the LLVM project" 2020-01-26 03:58:30 +00:00