[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 ...
Adjust "end namespace" comment in MLIR to match new agree'd coding styleSee D115115 and this mailing list discussion:https://lists.llvm.org/pipermail/llvm-dev/2021-December/154199.htmlDifferenti
Adjust "end namespace" comment in MLIR to match new agree'd coding styleSee D115115 and this mailing list discussion:https://lists.llvm.org/pipermail/llvm-dev/2021-December/154199.htmlDifferential Revision: https://reviews.llvm.org/D115309
[mlir][NFC] Cleanup the MLIRTestReducer pass
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-reduce] Reducer refactor.* A Reducer is a kind of RewritePattern, so it's just the same aswriting graph rewrite.* ReductionTreePass operates on Operation rather than ModuleOp, so that* we
[mlir-reduce] Reducer refactor.* A Reducer is a kind of RewritePattern, so it's just the same aswriting graph rewrite.* ReductionTreePass operates on Operation rather than ModuleOp, so that* we are able to reduce a nested structure(e.g., module in module) by* self-nesting.Reviewed By: jpienaar, rriddleDifferential Revision: https://reviews.llvm.org/D101046
Create TestReducer pass- Create a pass that generates bugs based on trivially defined behavior for the purpose of testing the MLIR Reduce Tool.- Implement the functionality inside the pass to cras
Create TestReducer pass- Create a pass that generates bugs based on trivially defined behavior for the purpose of testing the MLIR Reduce Tool.- Implement the functionality inside the pass to crash mlir-opt in the presence of an operation with the name "crashOp".- Register the pass as a test pass in the mlir-opt tool.Reviewed by: jpienaarDifferential Revision: https://reviews.llvm.org/D83422