Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BACKEND][NFC] Interface for LinearLayout conversion. (#4525)
Currently, implementing a LinearLayout conversion from a new layout requires implementing the conversion method in `LinearLayoutConversions.cpp`. The current approach is not ideal because: - It does not support modular design in that a third-party layout cannot implement its own conversion externally. - There is no compile-time method to check whether a layout supports LinearLayout conversion. This PR suggests adding a TableGen trait to interface LinearLayout conversion method. The process is now simplified as 1) add `LinearLayoutTrait` to the layout and implement`[Layout]::toLinearLayout` function. Checklists: - [x] I am not making a trivial change, such as fixing a typo in a comment. - [x] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [x] I have run `pre-commit run --from-ref origin/main --to-ref HEAD`. - Select one of the following. - [ ] I have added tests. - `/test` for `lit` tests - `/unittest` for C++ tests - `/python/test` for end-to-end tests - [x] This PR does not need a test because it is an improvement of programming interface of an existing feature. - Select one of the following. - [x] I have not added any `lit` tests. - [ ] The `lit` tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.)
- Loading branch information