[mlir] (NFC) Clean up bazel and CMake target namesAll dialect targets in bazel have been named *Dialect and all dialecttargets in CMake have been named MLIR*Dialect.
[mlir:NFC] Remove the forward declaration of FuncOp in the mlir namespaceFuncOp has been moved to the `func` namespace for a little over a month, theusing directive can be dropped now.
[mlir] Rework the implementation of TypeIDThis commit restructures how TypeID is implemented to ideally avoidthe current problems related to shared libraries. This is done by changingthe "implici
[mlir] Rework the implementation of TypeIDThis commit restructures how TypeID is implemented to ideally avoidthe current problems related to shared libraries. This is done by changingthe "implicit" fallback path to use the name of the type, instead of usinga static template variable (which breaks shared libraries). The major downside to thisis that it adds some additional initialization costs for the implicit path. Given theuse of type names for uniqueness in the fallback, we also no longer allow typesdefined in anonymous namespaces to have an implicit TypeID. To simplify definingan ID for these classes, a new `MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID` macrowas added to allow for explicitly defining a TypeID directly on an internal class.To help identify when types are using the fallback, `-debug-only=typeid` can beused to log which types are using implicit ids.This change generally only requires changes to the test passes, which are all definedin anonymous namespaces, and thus can't use the fallback any longer.Differential Revision: https://reviews.llvm.org/D122775
show more ...
[mlir][Pass] Deprecate FunctionPass in favor of OperationPass<FuncOp>The only benefit of FunctionPass is that it filters out functiondeclarations. This isn't enough to justify carrying it around,
[mlir][Pass] Deprecate FunctionPass in favor of OperationPass<FuncOp>The only benefit of FunctionPass is that it filters out functiondeclarations. This isn't enough to justify carrying it around, as we cansimplify filter out declarations when necessary within the pass. We canalso explore with better scheduling primitives to filter out declarationsat the pipeline level in the future.The definition of FunctionPass is left intact for now to allow time for downstreamusers to migrate.Differential Revision: https://reviews.llvm.org/D117182
[mlir] Replace `include_directories`Switches to adding target specific, private includes instead of addingglobal includes.Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D10
[mlir] Replace `include_directories`Switches to adding target specific, private includes instead of addingglobal includes.Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D109494
Migrate MLIR test passes to the new registration APIMake sure they all define getArgument()/getDescription().Depends On D104421Differential Revision: https://reviews.llvm.org/D104426
[mlir] support memref of memref in standard-to-llvm conversionNow that memref supports arbitrary element types, add support for memref ofmemref and make sure it is properly converted to the LLVM d
[mlir] support memref of memref in standard-to-llvm conversionNow that memref supports arbitrary element types, add support for memref ofmemref and make sure it is properly converted to the LLVM dialect. The typesupport itself avoids adding the interface to the memref type itself similarlyto other built-in types. This allows the shape, and therefore byte size, of thememref descriptor to remain a lowering aspect that is easier to customize andevolve as opposed to sanctifying it in the data layout specification for thememref type itself.Factor out the code previously in a testing pass to live in a dedicated datalayout analysis and use that analysis in the conversion to compute theallocation size for memref of memref. Other conversions will be portedseparately.Depends On D103827Reviewed By: rriddleDifferential Revision: https://reviews.llvm.org/D103828
[mlir][NFC] Move passes in test/lib/Transforms/ to a directory that mirrors what they testtest/lib/Transforms/ has bitrot and become somewhat of a dumping grounds for testing pretty much any part o
[mlir][NFC] Move passes in test/lib/Transforms/ to a directory that mirrors what they testtest/lib/Transforms/ has bitrot and become somewhat of a dumping grounds for testing pretty much any part of the project. This revision cleans this up, and moves the files within to a directory that reflects what is actually being tested.Differential Revision: https://reviews.llvm.org/D102456