- Generalizes passes linalg-detensorize, linalg-fold-unit-extent-dims, convert-elementwise-to-linalg.
- I feel that more work could be done in the future (i.e. make FunctionLike into a proper OpInterface and extend actions in dialect conversion to be trait based), and this patch would be a good record of why that is useful.
- Note for downstreams:
- Since these passes are now generic, they do not automatically nest with pass managers set up for that.
- If running them over nested functions, you must nest explicitly. Upstream has adopted this style but *-opt still has some uses of implicit pipelines via args. See tests for argument changes needed.
- Addressed missed comments from the original and per-suggestion removed the assert on FunctionLike in ElementwiseToLinalg, which also is what was causing the integration test to fail.
This reverts commit aa8815e42e646a98663af4cf036dbb913ad047a7.