#
db791b27 |
| 02-Jul-2024 |
Ramkumar Ramachandra <ramkumar.ramachandra@codasip.com> |
mlir/LogicalResult: move into llvm (#97309)
This patch is part of a project to move the Presburger library into
LLVM.
|
Revision tags: 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 |
|
#
3dbac2c0 |
| 30-Nov-2023 |
Fehr Mathieu <mathieu.fehr@gmail.com> |
[mlir] Expose type and attribute names in the MLIRContext and abstract type/attr classes (#72189)
This patch expose the type and attribute names in C++ as methods in the
`AbstractType` and `Abstrac
[mlir] Expose type and attribute names in the MLIRContext and abstract type/attr classes (#72189)
This patch expose the type and attribute names in C++ as methods in the
`AbstractType` and `AbstractAttribute` classes, and keep a map of names
to `AbstractType` and `AbstractAttribute` in the `MLIRContext`. Type and
attribute names should be unique.
It adds support in ODS to generate the `getName` methods in
`AbstractType` and `AbstractAttribute`, through the use of two new
variables, `typeName` and `attrName`. It also adds names to C++-defined
type and attributes.
show more ...
|
Revision tags: 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 |
|
#
c1fa60b4 |
| 11-May-2023 |
Tres Popp <tpopp@google.com> |
[mlir] Update method cast calls to function calls
The MLIR classes Type/Attribute/Operation/Op/Value support cast/dyn_cast/isa/dyn_cast_or_null functionality through llvm's doCast functionality in a
[mlir] Update method cast calls to function calls
The MLIR classes Type/Attribute/Operation/Op/Value support cast/dyn_cast/isa/dyn_cast_or_null functionality through llvm's doCast functionality in addition to defining methods with the same name. This change begins the migration of uses of the method to the corresponding function call as has been decided as more consistent.
Note that there still exist classes that only define methods directly, such as AffineExpr, and this does not include work currently to support a functional cast/isa call.
Context:
* https://mlir.llvm.org/deprecation/ at "Use the free function variants for dyn_cast/cast/isa/…" * Original discussion at https://discourse.llvm.org/t/preferred-casting-style-going-forward/68443
Implementation: This follows a previous patch that updated calls `op.cast<T>()-> cast<T>(op)`. However some cases could not handle an unprefixed `cast` call due to occurrences of variables named cast, or occurring inside of class definitions which would resolve to the method. All C++ files that did not work automatically with `cast<T>()` are updated here to `llvm::cast` and similar with the intention that they can be easily updated after the methods are removed through a find-replace.
See https://github.com/llvm/llvm-project/compare/main...tpopp:llvm-project:tidy-cast-check for the clang-tidy check that is used and then update printed occurrences of the function to include `llvm::` before.
One can then run the following: ``` ninja -C $BUILD_DIR clang-tidy
run-clang-tidy -clang-tidy-binary=$BUILD_DIR/bin/clang-tidy -checks='-*,misc-cast-functions'\ -export-fixes /tmp/cast/casts.yaml mlir/*\ -header-filter=mlir/ -fix
rm -rf $BUILD_DIR/tools/mlir/**/*.inc ```
Differential Revision: https://reviews.llvm.org/D150348
show more ...
|
Revision tags: 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 |
|
#
03d136cf |
| 21-Jan-2023 |
River Riddle <riddleriver@gmail.com> |
[mlir] Promote the SubElementInterfaces to a core Attribute/Type construct
This commit restructures the sub element infrastructure to be a core part of attributes and types, instead of being relegat
[mlir] Promote the SubElementInterfaces to a core Attribute/Type construct
This commit restructures the sub element infrastructure to be a core part of attributes and types, instead of being relegated to an interface. This establishes sub element walking/replacement as something "always there", which makes it easier to rely on for correctness/etc (which various bits of infrastructure want, such as Symbols).
Attribute/Type now have `walk` and `replace` methods directly accessible, which provide power API for interacting with sub elements. As part of this, a new AttrTypeWalker class is introduced that supports caching walked attributes/types, and a friendlier API (see the simplification of symbol walking in SymbolTable.cpp).
Differential Revision: https://reviews.llvm.org/D142272
show more ...
|
#
83a635c0 |
| 12-Jan-2023 |
River Riddle <riddleriver@gmail.com> |
[mlir] Add support for interface inheritance
This allows for interfaces to define a set of "base classes", which are interfaces whose methods/extra class decls/etc. should be inherited by the derive
[mlir] Add support for interface inheritance
This allows for interfaces to define a set of "base classes", which are interfaces whose methods/extra class decls/etc. should be inherited by the derived interface. This more easily enables combining interfaces and their dependencies, without lots of awkard casting. Additional implicit conversion operators also greatly simplify the conversion process.
One other aspect of this "inheritance" is that we also implicitly add the base interfaces to the attr/op/type. The user can still add them manually if desired, but this should help remove some of the boiler plate when an interface has dependencies.
See https://discourse.llvm.org/t/interface-inheritance-and-dependencies-interface-method-visibility-interface-composition
Differential Revision: https://reviews.llvm.org/D140198
show more ...
|
#
0441272c |
| 16-Jan-2023 |
Mehdi Amini <joker.eph@gmail.com> |
Revert "Revert "Refactor OperationName to use virtual tables for dispatch (NFC)""
This streamlines the implementation and makes it so that the virtual tables are in the binary instead of dynamically
Revert "Revert "Refactor OperationName to use virtual tables for dispatch (NFC)""
This streamlines the implementation and makes it so that the virtual tables are in the binary instead of dynamically assembled during initialization. The dynamic allocation size of op registration is also smaller with this change.
This reverts commit 7bf1e441da6b59a25495fde8e34939f93548cc6d and re-introduce e055aad5ffb348472c65dfcbede85f39efe8f906 after fixing the windows crash by making ParseAssemblyFn a unique_function again
Differential Revision: https://reviews.llvm.org/D141492
show more ...
|
#
7bf1e441 |
| 16-Jan-2023 |
Mehdi Amini <joker.eph@gmail.com> |
Revert "Refactor OperationName to use virtual tables for dispatch (NFC)"
This reverts commit e055aad5ffb348472c65dfcbede85f39efe8f906.
This crashes on Windows at the moment for some reasons.
|
#
e055aad5 |
| 12-Jan-2023 |
Mehdi Amini <joker.eph@gmail.com> |
Refactor OperationName to use virtual tables for dispatch (NFC)
This streamlines the implementation and makes it so that the virtual tables are in the binary instead of dynamically assembled during
Refactor OperationName to use virtual tables for dispatch (NFC)
This streamlines the implementation and makes it so that the virtual tables are in the binary instead of dynamically assembled during initialization. The dynamic allocation size of op registration is also smaller with this change.
Differential Revision: https://reviews.llvm.org/D141492
show more ...
|
Revision tags: llvmorg-15.0.7 |
|
#
1a36588e |
| 04-Dec-2022 |
Kazu Hirata <kazu@google.com> |
[mlir] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of ma
[mlir] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1 |
|
#
ba8424a2 |
| 19-Sep-2022 |
Mathieu Fehr <mathieu.fehr@gmail.com> |
[mlir] Add Dynamic Dialects
Dynamic dialects are dialects that can be defined at runtime. Dynamic dialects are extensible by new operations, types, and attributes at runtime.
Reviewed By: rriddle
[mlir] Add Dynamic Dialects
Dynamic dialects are dialects that can be defined at runtime. Dynamic dialects are extensible by new operations, types, and attributes at runtime.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D125201
show more ...
|
Revision tags: llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
69b6454f |
| 13-Jul-2022 |
Jacques Pienaar <jpienaar@google.com> |
[mlir] Plumb through default attribute populate for extensible dialect.
|
#
82140ad7 |
| 08-Jul-2022 |
Jacques Pienaar <jpienaar@google.com> |
[mlir] Add method to populate default attributes
Previously default attributes were only usable by way of the ODS generated accessors, but this was undesirable as 1. The ODS getters could construct
[mlir] Add method to populate default attributes
Previously default attributes were only usable by way of the ODS generated accessors, but this was undesirable as 1. The ODS getters could construct Attribute each get request; 2. For non-C++ uses this would require either duplicating some of tee default attribute generating or generating additional bindings to generate methods; 3. Accessing op.getAttr("foo") and op.getFoo() would return different results; Generate method to populate default attributes that can be used to address these.
This merely adds this facility but does not employ by default on any path.
Differential Revision: https://reviews.llvm.org/D128962
show more ...
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3 |
|
#
9e0b5533 |
| 27-Apr-2022 |
Mathieu Fehr <mathieu.fehr@gmail.com> |
[mlir] Add extensible dialects
Depends on D104534 Add support for extensible dialects, which are dialects that can be extended at runtime with new operations and types.
These operations and types c
[mlir] Add extensible dialects
Depends on D104534 Add support for extensible dialects, which are dialects that can be extended at runtime with new operations and types.
These operations and types cannot at the moment implement traits or interfaces.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D104554
show more ...
|
Revision tags: llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
dbe9f091 |
| 02-Mar-2022 |
Mathieu Fehr <mathieu.fehr@gmail.com> |
[mlir] Add extensible dialects
Add support for extensible dialects, which are dialects that can be extended at runtime with new operations and types.
These operations and types cannot at the moment
[mlir] Add extensible dialects
Add support for extensible dialects, which are dialects that can be extended at runtime with new operations and types.
These operations and types cannot at the moment implement traits or interfaces.
Differential Revision: https://reviews.llvm.org/D104554
show more ...
|