This helps to prevent tsan failures when users inadvertantly mutate the
context in a non-safe way.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/IR/MLIRContext.cpp | ||
---|---|---|
361 | I have a general question here on the registration requirements with nested passes. Is there a good rule of thumb for dependent dialects, external models and dynamically injected ops mixed with nested passes? Am I missing something? |
mlir/lib/IR/MLIRContext.cpp | ||
---|---|---|
361 | Dependent dialects is supposed to be handle recursively, which admittedly can be tricky sometimes. I think the IREE HAL handles it properly as an example: https://github.com/google/iree/blob/main/iree/compiler/Dialect/HAL/Transforms/TranslateExecutables.cpp#L46-L53 External models are supposed to be injected by IR producers, if this is part of a nested pass, the pass that nest this can handle this in getDependentDialects() as well. |
I have a general question here on the registration requirements with nested passes.
Is there a good rule of thumb for dependent dialects, external models and dynamically injected ops mixed with nested passes?
It seems that a mechanism to declare dependent passes would be a good QoL improvement: it does not seem manageable for nested pass writers to have to manually add registration for everything in dependent passes.
Am I missing something?