summaryrefslogtreecommitdiff
path: root/mlir/test/lib/IR/TestVisitorsGeneric.cpp
AgeCommit message (Collapse)Author
2024-04-22[mlir][test] Reorganize the test dialect (#89424)Jeff Niu
This PR massively reorganizes the Test dialect's source files. It moves manually-written op hooks into `TestOpDefs.cpp`, moves format custom directive parsers and printers into `TestFormatUtils`, adds missing comment blocks, and moves around where generated source files are included for types, attributes, enums, etc. into their own source file. This will hopefully help navigate the test dialect source code, but also speeds up compile time of the test dialect by putting generated source files into separate compilation units. This also sets up the test dialect to shard its op definitions, done in the next PR.
2022-07-15[mlir] remove unnecessary statements in testAshay Rane
A previous commit (f2b94bd) added some unnecessary statements that dereferenced operations only to get the operations back. This patch removes the unnecessary statements. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D129913
2022-07-15[mlir] check whether region and block visitors are interruptedAshay Rane
The visitor functions for `Region` and `Block` types did not always check the value returned by recursive calls. This caused the top-level visitor invocation to return `WalkResult::advance()` even if one or more recursive invocations returned `WalkResult::interrupt()`. This patch fixes the problem by check if any recursive call is interrupted, and if so, return `WalkResult::interrupt()`. Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D129718
2022-04-04[mlir] Rework the implementation of TypeIDRiver Riddle
This commit restructures how TypeID is implemented to ideally avoid the current problems related to shared libraries. This is done by changing the "implicit" fallback path to use the name of the type, instead of using a static template variable (which breaks shared libraries). The major downside to this is that it adds some additional initialization costs for the implicit path. Given the use of type names for uniqueness in the fallback, we also no longer allow types defined in anonymous namespaces to have an implicit TypeID. To simplify defining an ID for these classes, a new `MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID` macro was 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 be used to log which types are using implicit ids. This change generally only requires changes to the test passes, which are all defined in anonymous namespaces, and thus can't use the fallback any longer. Differential Revision: https://reviews.llvm.org/D122775
2022-01-14[MLIR] Introduce generic visitors.Rahul Joshi
- Generic visitors invoke operation callbacks before/in-between/after visiting the regions attached to an operation and use a `WalkStage` to indicate which regions have been visited. - This can be useful for cases where we need to visit the operation in between visiting regions attached to the operation. Differential Revision: https://reviews.llvm.org/D116230