Introduce python bindings for MLIR EDSCs
This CL also introduces a set of python bindings using pybind11. The bindings are exercised using a `test_py2andpy3.py` test suite that works for both python 2 and 3. `test_py3.py` on the other hand uses the more idiomatic, python 3 only "PEP 3132 -- Extended Iterable Unpacking" to implement a rank and type-agnostic copy with transposition. Because python assignment is by reference, we cannot easily make the assignment operator use the same type of sugaring as in C++; i.e. the following: ```cpp Stmt block = edsc::Block({ For(ivs, zeros, shapeA, ones, { C[ivs] = IA[ivs] + IB[ivs] })}); ``` has no equivalent in the native Python EDSCs at this time. However, the sugaring can be built as a simple DSL in python and is left as future work. PiperOrigin-RevId: 231337667
Loading
Please sign in to comment