| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][Transforms][NFC] Dialect conversion: Simplify EraseBlockRewrite constructor (#99805) | 2 年前 | |
[mlir][pass] Add composite pass utility (#87166) Composite pass allows to run sequence of passes in the loop until fixed point or maximum number of iterations is reached. The usual candidates are canonicalize+CSE as canonicalize can open more opportunities for CSE and vice-versa. | 2 年前 | |
[mlir][Transforms] teach CSE about recursive memory effects Add support for reasoning about operations with recursive memory effects to CSE. The recursive effects are gathered by a helper function. I decided to allow returning duplicates from the helper function because there's no benefit to spending the computation time to remove them in the existing use case. Differential Revision: https://reviews.llvm.org/D156805 | 2 年前 | |
Fix canonicalizer to copy the entire GreedyRewriteConfig instead of selected fields It is surprising for the user that only some fields were honored. Also make the FrozenRewritePatternSet a shared_ptr<const T>. Fixes #64543 Differential Revision: https://reviews.llvm.org/D157469 | 2 年前 | |
[mlir][pass] Add composite pass utility (#87166) Composite pass allows to run sequence of passes in the loop until fixed point or maximum number of iterations is reached. The usual candidates are canonicalize+CSE as canonicalize can open more opportunities for CSE and vice-versa. | 2 年前 | |
[mlir] Remove Transforms/SideEffectUtils.h and move the methods into Interface/SideEffectInterfaces.h. The methods in SideEffectUtils.h (and their implementations in SideEffectUtils.cpp) seem to have similar intent to methods already existing in SideEffectInterfaces.h. Move the decleration (and implementation) from SideEffectUtils.h (and SideEffectUtils.cpp) into SideEffectInterfaces.h (and SideEffectInterface.cpp). Also drop the SideEffectInterface::hasNoEffect method in favor of mlir::isMemoryEffectFree which actually recurses into the operation instead of just relying on the hasRecursiveMemoryEffectTrait exclusively. Differential Revision: https://reviews.llvm.org/D137857 | 3 年前 | |
[mlir] Add RuntimeVerifiableOpInterface and transform Static op verification cannot detect cases where an op is valid at compile time but may be invalid at runtime. An example of such an op is memref::ExpandShapeOp. Invalid at compile time: memref.expand_shape %m [[0, 1]] : memref<11xf32> into memref<2x5xf32> Valid at compile time (because we do not know any better): memref.expand_shape %m [[0, 1]] : memref<?xf32> into memref<?x5xf32>. This op may or may not be valid at runtime depending on the runtime shape of %m. Invalid runtime ops such as the one above are hard to debug because they can crash the program execution at a seemingly unrelated position or (even worse) compute an invalid result without crashing. This revision adds a new op interface RuntimeVerifiableOpInterface that can be implemented by ops that provide additional runtime verification. Such runtime verification can be computationally expensive, so it is only generated on an opt-in basis by running -generate-runtime-verification. A simple runtime verifier for memref::ExpandShapeOp is provided as an example. Differential Revision: https://reviews.llvm.org/D138576 | 3 年前 | |
| 2 年前 | ||
[mlir] Use std::optional instead of llvm::Optional (NFC) This patch replaces (llvm::|)Optional< with std::optional<. I'll post a separate patch to remove #include "llvm/ADT/Optional.h". 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 | 3 年前 | |
[mlir][transform] LISH: Add transform op (#70630) Add a transform op for loop-invariant subset hoisting. Delete the old transform op from the Linalg dialect. | 2 年前 | |
[MLIR][Analysis] Consolidate topological sort utilities (#92563) This PR attempts to consolidate the different topological sort utilities into one place. It adds them to the analysis folder because the SliceAnalysis uses some of these. There are now two different sorting strategies: 1. Sort only according to SSA use-def chains 2. Sort while taking regions into account. This requires a much more elaborate traversal and cannot be applied on graph regions that easily. This additionally reimplements the region aware topological sorting because the previous implementation had an exponential space complexity. I'm open to suggestions on how to combine this further or how to fuse the test passes. | 2 年前 | |
[MLIR] Update pass declarations to new autogenerated files The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow dropping the old infrastructure. Reviewed By: mehdi_amini, rriddle Differential Review: https://reviews.llvm.org/D132838 | 3 年前 | |
[MLIR] Add label to print-ir pass Differential Revision: https://reviews.llvm.org/D145523 | 3 年前 | |
[MLIR] Added check for IsTerminator trait (#79317) This PR adds a check for IsTerminator trait to prevent deletion of ops like gpu.terminator as a "simple op" by RemoveDeadValues pass. | 2 年前 | |
[MLIR] Erase location of folded constants (#75415) Follow up to the discussion from #75258, and serves as an alternate solution for #74670. Set the location to Unknown for deduplicated / moved / materialized constants by OperationFolder. This makes sure that the folded constants don't end up with an arbitrary location of one of the original ops that became it, and that hoisted ops don't confuse the stepping order. | 2 年前 | |
[mlir][sroa] Update name of subelement types in destructurable slots (#97226) The elementPtrs has changed meaning over time and the name is now outdated which may be confusing. This PR updates it to a name representative of current usage. | 2 年前 | |
[MLIR] Update pass declarations to new autogenerated files The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow dropping the old infrastructure. Reviewed By: mehdi_amini, rriddle Differential Review: https://reviews.llvm.org/D132838 | 3 年前 | |
mlir/{SPIRV,Bufferization}: use std::optional in .td files (NFC) This is part of an effort to migrate from llvm::Optional to std::optional. 22426110c5ef changed the way mlir-tblgen generates .inc files, emitting std::optional when an Optional attribute is specified in a .td file. It also changed several .td files hard-coding llvm::Optional to use std::optional. However, the patch excluded a few .td files in SPIRV and Bufferization hard-coding llvm::Optional. This patch fixes that defect, and after this patch, references to llvm::Optional in .cpp and .h files can be replaced mechanically. See also: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 Signed-off-by: Ramkumar Ramachandra <r@artagnon.com> Differential Revision: https://reviews.llvm.org/D140329 | 3 年前 | |
[MLIR] Update pass declarations to new autogenerated files The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow dropping the old infrastructure. Reviewed By: mehdi_amini, rriddle Differential Review: https://reviews.llvm.org/D132838 | 3 年前 | |
[MLIR][Analysis] Consolidate topological sort utilities (#92563) This PR attempts to consolidate the different topological sort utilities into one place. It adds them to the analysis folder because the SliceAnalysis uses some of these. There are now two different sorting strategies: 1. Sort only according to SSA use-def chains 2. Sort while taking regions into account. This requires a much more elaborate traversal and cannot be applied on graph regions that easily. This additionally reimplements the region aware topological sorting because the previous implementation had an exponential space complexity. I'm open to suggestions on how to combine this further or how to fuse the test passes. | 2 年前 | |
[MLIR][Analysis] Consolidate topological sort utilities (#92563) This PR attempts to consolidate the different topological sort utilities into one place. It adds them to the analysis folder because the SliceAnalysis uses some of these. There are now two different sorting strategies: 1. Sort only according to SSA use-def chains 2. Sort while taking regions into account. This requires a much more elaborate traversal and cannot be applied on graph regions that easily. This additionally reimplements the region aware topological sorting because the previous implementation had an exponential space complexity. I'm open to suggestions on how to combine this further or how to fuse the test passes. | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 |