|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
ee168fb9 |
| 21-Jul-2022 |
Alex Zinenko <[email protected]> |
[mlir][python] Fix issues with block argument slices
The type extraction helper function for block argument and op result list objects was ignoring the slice entirely. So was the slice addition. Bot
[mlir][python] Fix issues with block argument slices
The type extraction helper function for block argument and op result list objects was ignoring the slice entirely. So was the slice addition. Both are caused by a misleading naming convention to implement slices via CRTP. Make the convention more explicit and hide the helper functions so users have harder time calling them directly.
Closes #56540.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D130271
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
429b0cf1 |
| 14-Feb-2022 |
Stella Laurenzo <[email protected]> |
[mlir][python] Directly implement sequence protocol on Sliceable.
* While annoying, this is the only way to get C++ exception handling out of the happy path for normal iteration. * Implements sq_len
[mlir][python] Directly implement sequence protocol on Sliceable.
* While annoying, this is the only way to get C++ exception handling out of the happy path for normal iteration. * Implements sq_length and sq_item for the sequence protocol (used for iteration, including list() construction). * Implements mp_subscript for general use (i.e. foo[1] and foo[1:1]). * For constructing a `list(op.results)`, this reduces the time from ~4-5us to ~1.5us on my machine (give or take measurement overhead) and eliminates C++ exceptions, which is a worthy goal in itself. * Compared to a baseline of similar construction of a three-integer list, which takes 450ns (might just be measuring function call overhead). * See issue discussed on the pybind side: https://github.com/pybind/pybind11/issues/2842
Differential Revision: https://reviews.llvm.org/D119691
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
e8d07395 |
| 14-Jan-2022 |
Mehdi Amini <[email protected]> |
Apply clang-tidy fixes for performance-unnecessary-value-param to MLIR (NFC)
|
|
Revision tags: llvmorg-13.0.1-rc2 |
|
| #
babad7c5 |
| 07-Jan-2022 |
Adrian Kuegel <[email protected]> |
[mlir][python] Use a named object
Currently, the object would be immediately destroyed after creation. Found by ClangTidy bugprone-unused-raii.
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
afeda4b9 |
| 29-Sep-2021 |
Alex Zinenko <[email protected]> |
[mlir][python] provide access to function argument/result attributes
Without this change, these attributes can only be accessed through the generic operation attribute dictionary provided the caller
[mlir][python] provide access to function argument/result attributes
Without this change, these attributes can only be accessed through the generic operation attribute dictionary provided the caller knows the special operation attribute names used for this purpose. Add some Python wrapping to support this use case.
Also provide access to function arguments usable inside the function along with a couple of quality-of-life improvements in using block arguments (function arguments being the arguments of its entry block).
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D110758
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
8dca953d |
| 14-Sep-2021 |
Sean Silva <[email protected]> |
[mlir] Apply py::module_local() to a few more classes.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D109776
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
63d16d06 |
| 24-Apr-2021 |
Mike Urbach <[email protected]> |
[mlir] Support setting operand values in C and Python APIs.
This adds `mlirOperationSetOperand` to the IR C API, similar to the function to get an operand.
In the Python API, this adds `operands[in
[mlir] Support setting operand values in C and Python APIs.
This adds `mlirOperationSetOperand` to the IR C API, similar to the function to get an operand.
In the Python API, this adds `operands[index] = value` syntax, similar to the syntax to get an operand with `operands[index]`.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D101398
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
| #
bd2083c2 |
| 29-Nov-2020 |
Stella Laurenzo <[email protected]> |
[mlir][Python] Python API cleanups and additions found during code audit.
* Add capsule get/create for Attribute and Type, which already had capsule interop defined. * Add capsule interop and get/cr
[mlir][Python] Python API cleanups and additions found during code audit.
* Add capsule get/create for Attribute and Type, which already had capsule interop defined. * Add capsule interop and get/create for Location. * Add Location __eq__. * Use get() and implicit cast to go from PyAttribute, PyType, PyLocation to MlirAttribute, MlirType, MlirLocation (bundled with this change because I didn't want to continue the pattern one more time).
Differential Revision: https://reviews.llvm.org/D92283
show more ...
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
5f0c1e38 |
| 24-Nov-2020 |
zhanghb97 <[email protected]> |
[mlir][Python] Sync Python bindings with C API MlirStringRef modification.
MLIR C API use the `MlirStringRef` instead of `const char *` for the string type now. This patch sync the Python bindings w
[mlir][Python] Sync Python bindings with C API MlirStringRef modification.
MLIR C API use the `MlirStringRef` instead of `const char *` for the string type now. This patch sync the Python bindings with the C API modification.
Differential Revision: https://reviews.llvm.org/D92007
show more ...
|
| #
4726a402 |
| 11-Nov-2020 |
Stella Laurenzo <[email protected]> |
[mlir][Python] Fix 'unreferenced local variable' warning on MSVC.
Differential Revision: https://reviews.llvm.org/D91282
|
| #
6c7e6b2c |
| 06-Nov-2020 |
Alex Zinenko <[email protected]> |
[mlir] Support slicing for operands in results in Python bindings
Slicing, that is element access with `[being:end:step]` structure, is a common Python idiom for sequence-like containers. It is also
[mlir] Support slicing for operands in results in Python bindings
Slicing, that is element access with `[being:end:step]` structure, is a common Python idiom for sequence-like containers. It is also necessary to support custom accessor for operations with variadic operands and results (an operation an return a slice of its operands that correspond to the given variadic group).
Add generic utility to support slicing in Python bindings and use it for operation operands and results.
Depends On D90923
Reviewed By: stellaraccident, mehdi_amini
Differential Revision: https://reviews.llvm.org/D90936
show more ...
|
| #
5b29d26b |
| 04-Nov-2020 |
Mehdi Amini <[email protected]> |
Refactor PyPrintAccumulatorm, PyFileAccumulator, and PySinglePartStringAccumulator from IRModules.cpp to PybindUtils.h
These are reusable utilities across bindings.
Differential Revision: https://r
Refactor PyPrintAccumulatorm, PyFileAccumulator, and PySinglePartStringAccumulator from IRModules.cpp to PybindUtils.h
These are reusable utilities across bindings.
Differential Revision: https://reviews.llvm.org/D90737
show more ...
|
| #
af66cd17 |
| 01-Nov-2020 |
Stella Laurenzo <[email protected]> |
[mlir][Python] Context managers for Context, InsertionPoint, Location.
* Finishes support for Context, InsertionPoint and Location to be carried by the thread using context managers. * Introduces ty
[mlir][Python] Context managers for Context, InsertionPoint, Location.
* Finishes support for Context, InsertionPoint and Location to be carried by the thread using context managers. * Introduces type casters and utilities so that DefaultPyMlirContext and DefaultPyLocation in method signatures does the right thing (allows explicit or gets from the thread context). * Extend the rules for the thread context stack to handle nesting, appropriately inheriting and clearing depending on whether the context is the same. * Refactors all method signatures to follow the new convention on trailing parameters for defaulting parameters (loc, ip, context). When the objects are carried in the thread context, this allows most explicit uses of these values to be elided. * Removes the style guide section on putting accessors to construct global objects on the PyMlirContext: this style fails to make good use of the new facility since it is often the only thing remaining needing an MlirContext. * Moves Module parse/creation from mlir.ir.Context to static methods on mlir.ir.Module. * Moves Context.create_operation to a static Operation.create method. * Moves Type parsing from mlir.ir.Context to static methods on mlir.ir.Type. * Moves Attribute parsing from mlir.ir.Context to static methods on mlir.ir.Attribute. * Move Location factory methods from mlir.ir.Context to static methods on mlir.ir.Location. * Refactors the std dialect fake "ODS" generated code to take advantage of the new scheme.
Differential Revision: https://reviews.llvm.org/D90547
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
c1ded6a7 |
| 21-Sep-2020 |
Stella Laurenzo <[email protected]> |
Add mlir python APIs for creating operations, regions and blocks.
* The API is a bit more verbose than I feel like it needs to be. In a follow-up I'd like to abbreviate some things and look in to cr
Add mlir python APIs for creating operations, regions and blocks.
* The API is a bit more verbose than I feel like it needs to be. In a follow-up I'd like to abbreviate some things and look in to creating aliases for common accessors. * There is a lingering lifetime hazard between the module and newly added operations. We have the facilities now to solve for this but I will do that in a follow-up. * We may need to craft a more limited API for safely referencing successors when creating operations. We need more facilities to really prove that out and should defer for now.
Differential Revision: https://reviews.llvm.org/D87996
show more ...
|
| #
2d1362e0 |
| 27-Aug-2020 |
Stella Laurenzo <[email protected]> |
Add Location, Region and Block to MLIR Python bindings.
* This is just enough to create regions/blocks and iterate over them. * Does not yet implement the preferred iteration strategy (python pseudo
Add Location, Region and Block to MLIR Python bindings.
* This is just enough to create regions/blocks and iterate over them. * Does not yet implement the preferred iteration strategy (python pseudo containers). * Refinements need to come after doing basic mappings of operations and values so that the whole hierarchy can be used.
Differential Revision: https://reviews.llvm.org/D86683
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc2 |
|
| #
3137c299 |
| 19-Aug-2020 |
Stella Laurenzo <[email protected]> |
Add initial python bindings for attributes.
* Generic mlir.ir.Attribute class. * First standard attribute (mlir.ir.StringAttr), following the same pattern as generic vs standard types. * NamedAttrib
Add initial python bindings for attributes.
* Generic mlir.ir.Attribute class. * First standard attribute (mlir.ir.StringAttr), following the same pattern as generic vs standard types. * NamedAttribute class.
Differential Revision: https://reviews.llvm.org/D86250
show more ...
|
| #
95b77f2e |
| 17-Aug-2020 |
Stella Laurenzo <[email protected]> |
Adds __str__ support to python mlir.ir.MlirModule.
* Also raises an exception on parse error. * Removes placeholder smoketest. * Adds docstrings.
Differential Revision: https://reviews.llvm.org/D86
Adds __str__ support to python mlir.ir.MlirModule.
* Also raises an exception on parse error. * Removes placeholder smoketest. * Adds docstrings.
Differential Revision: https://reviews.llvm.org/D86046
show more ...
|