Closed jackalcooper closed 2 months ago
The recent changes involve extensive refactoring and enhancements across various modules related to pattern handling in the MLIR framework. These updates streamline pattern application processes, improve function signatures, and introduce new module dependencies, enhancing code clarity and maintainability. Overall, the changes reflect a shift towards a more modular and optimized approach to managing MLIR operations and patterns while preserving core functionalities.
Files | Change Summary |
---|---|
lib/beaver/dsl/pattern.ex |
Refactored pdl_pattern_module_op and unquote(name) , simplifying argument handling and enhancing readability while maintaining core functionality. |
lib/beaver/mlir/capi_codegen.ex |
Expanded dependencies for rewriting and optimization, indicating a broader scope for code generation strategies. |
lib/beaver/mlir/module.ex |
Introduced from_operation/1 to delegate operation processing to the C API, enhancing functionality for operation-to-module conversion. |
lib/beaver/mlir/operation.ex |
Added delegation for parent function to retrieve parent operations, enriching operation hierarchy management. |
lib/beaver/mlir/pass.ex |
Modified Agent.update/3 to use :infinity as the timeout, enhancing reliability during MLIR pass registration. |
lib/beaver/mlir/pattern.ex |
Revamped apply_ function to adopt a modular approach for pattern processing, enhancing flexibility and maintaining efficiency. |
lib/beaver/mlir/pattern_set.ex |
Removed several functions and consolidated apply_ logic to streamline pattern application, focusing on efficiency and clarity. |
native/include/mlir-c/Beaver/Op.h |
Updated include directives, removed beaverGetNumRegisteredOperations , and added beaverApplyPatternsAndFoldGreedily , enhancing operation registration and pattern application capabilities. |
native/include/mlir-c/Beaver/wrapper.h |
Removed PDL.h and added Rewrite.h , adjusting dependencies to focus on transformation capabilities. |
native/include/mlir/CAPI/Beaver.h |
Removed PDL.h and eliminated DEFINE_C_API_PTR_METHODS for MlirRewritePatternSet , simplifying the API. |
native/lib/CAPI/Beaver.cpp |
Removed multiple exported functions related to pattern application; added beaverApplyPatternsAndFoldGreedily , consolidating functionality into a unified interface. |
native/src/mlir_capi.zig |
Introduced new constants for enhanced MLIR functionality related to rewriting patterns and configurations. |
test/pdl_test.exs |
Refactored test functions to streamline pattern set creation and application, improving resource management and efficiency. |
test/support/toy_pass.ex |
Modified run function to shift context in pattern application from operation to parent module, adjusting control flow accordingly. |
sequenceDiagram
participant C as Context
participant P as Patterns
participant M as Module
participant O as Operation
C->>P: Create Pattern Set
P->>M: Generate Patterns
M->>P: Freeze Patterns
M->>O: Apply Patterns And Fold
πβ¨ In code we dance, with patterns so bright,
Refactoring joyfully, day and night.
New flows emerge, like hops in the grass,
In the world of MLIR, we leap and we pass!
Let's celebrate change, with a wink and a cheer,
For clearer code brings us all near! π
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Chores