- Sep 23, 2020
-
-
MaheshRavishankar authored
A sequence of two reshapes such that one of them is just adding unit extent dims can be folded to a single reshape. Differential Revision: https://reviews.llvm.org/D88057
-
Mehdi Amini authored
Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88008
-
- Sep 22, 2020
-
-
Mehdi Amini authored
Instead of performing a transformation, such pass yields a new pass pipeline to run on the currently visited operation. This feature can be used for example to implement a sub-pipeline that would run only on an operation with specific attributes. Another example would be to compute a cost model and dynamic schedule a pipeline based on the result of this analysis. Discussion: https://llvm.discourse.group/t/rfc-dynamic-pass-pipeline/1637 Recommit after fixing an ASAN issue: the callback lambda needs to be allocated to a temporary to have its lifetime extended to the end of the current block instead of just the current call expression. Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D86392
-
Paul C. Anagnostopoulos authored
Files modified to take comments into account. MLIR documentation updated for new TableGen documentation files.
-
Jacques Pienaar authored
The OpBuilder is required to start with OpBuilder and OperationState, so remove the need for the user to specify it. To make it simpler to update callers, retain the legacy behavior for now and skip injecting OpBuilder/OperationState when params start with OpBuilder. Related to bug 47442. Differential Revision: https://reviews.llvm.org/D88050
-
Kazuaki Ishizaki authored
Reviewed By: mravishankar, jpienaar Differential Revision: https://reviews.llvm.org/D88040
-
David Truby authored
This prefix is unnecessary as SmallVector is re-exported in the mlir namespace. Differential Revision: https://reviews.llvm.org/D88025
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D88091
-
Frederik Gossen authored
The assertion falsely expected ranked memrefs only. Now both, ranked and unranked memrefs are allowed. Differential Revision: https://reviews.llvm.org/D88080
-
Thomas Joerg authored
This reverts commit 385c3f43. Test mlir/test/Pass:dynamic-pipeline-fail-on-parent.mlir.test fails when run with ASAN: ERROR: AddressSanitizer: stack-use-after-scope on address ... Reviewed By: bkramer, pifon2a Differential Revision: https://reviews.llvm.org/D88079
-
Nicolas Vasilache authored
This revision allows representing a reduction at the level of linalg on tensors for generic ops by uniformizing with the named ops approach.
-
Eugene Zhulenev authored
[MLIR] Add subf and rsqrt EDSC intrinsics NOTE: Please merge it when ready. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D88039
-
Ahmed S. Taei authored
Change the indexing map to iterate over the (b, x0, x1, z0, z1, q, k) instead of (b, x0, x1, k, q, z0, z1) to evaluate the convolution expression: Y[b, x0, x1, k] = sum(W[z0, z1, q, k] * X[b, x0 + z0, x1 + z1, q], z0, z1, q) This allows llvm auto vectorize to work and has better locality resulting significant performance improvments Differential Revision: https://reviews.llvm.org/D87781
-
Fangrui Song authored
-
Mehdi Amini authored
Instead of performing a transformation, such pass yields a new pass pipeline to run on the currently visited operation. This feature can be used for example to implement a sub-pipeline that would run only on an operation with specific attributes. Another example would be to compute a cost model and dynamic schedule a pipeline based on the result of this analysis. Discussion: https://llvm.discourse.group/t/rfc-dynamic-pass-pipeline/1637 Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D86392
-
Diego Caballero authored
This patch adds a utility based on SuperVectorizer to vectorize an affine loop nest using a given vectorization strategy. This strategy allows targeting specific loops for vectorization instead of relying of the SuperVectorizer analysis to choose the right loops to vectorize. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D85869
-
Jacques Pienaar authored
Sets the content for the section entry pages Hugo side. Differential Revision: https://reviews.llvm.org/D87969
-
- Sep 21, 2020
-
-
Stephen Neuendorffer authored
-
jerryyin authored
check-mlir target run tests simultaneously with multiple threads. This caused multiple threads to invoke the `lld::elf::link()` interface at the same time. Since the interface does not have a thread-safe implementation, add a metex to prevent multi-threaded access. I discovered this by looking the the failure stack trace. lld/ELF/symbolTable.cpp, SymbolTable::insert() hit into an assert with related to Epoch Trackers. The root cause is to due to there is no protection around the symMap (update) which is implemented in non-thread safe data structure: denseMap. Differential Revision: https://reviews.llvm.org/D88038
-
Valentin Clement authored
Add attributes for the async, wait and self clauses. These clauses can be present without values. When this is the case they are modelled with an attribute instead of operands. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D87991
-
Christian Sigg authored
See comments in https://reviews.llvm.org/D85631. Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D86214
-
Benjamin Kramer authored
LLVM can deal with any integer or float type, don't arbitrarily restrict it to f32/f64/i32/i64. Differential Revision: https://reviews.llvm.org/D88010
-
Tres Popp authored
This adds support for the interface and provides unambigious information on the control flow as it is unconditional on any runtime values. The code is tested through confirming that buffer-placement behaves as expected. Differential Revision: https://reviews.llvm.org/D87894
-
Mehdi Amini authored
This crash only happens when a function pass is followed by a module pass. In this case the splitting of the pass pipeline didn't handle properly the verifier passes and ended up with an odd number of pass in the pipeline, breaking an assumption of the local crash reproducer executor and hitting an assertion. Differential Revision: https://reviews.llvm.org/D88000
-
Mehdi Amini authored
-
- Sep 18, 2020
-
-
Lei Zhang authored
Vendor/device information are not resource limits. Moving to target environment directly for better organization. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D87911
-
Stella Laurenzo authored
* Per thread https://llvm.discourse.group/t/revisiting-ownership-and-lifetime-in-the-python-bindings/1769 * Reworks contexts so it is always possible to get back to a py::object that holds the reference count for an arbitrary MlirContext. * Retrofits some of the base classes to automatically take a reference to the context, elimintating keep_alives. * More needs to be done, as discussed, when moving on to the operations/blocks/regions. Differential Revision: https://reviews.llvm.org/D87886
-
Sean Silva authored
I realized when using this that one can't get very good error messages without an additional message attribute. Differential Revision: https://reviews.llvm.org/D87875
-
Andy Ly authored
constBuilderCall was not defined for TypeArrayAttr, resulting in tblgen not emitting the correct code when TypeArrayAttr is used with a default valued attribute. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D87907
-
ergawy authored
Roundtripping SPIR-V modules used the same MLIRContext object for both ways of the trip. This resulted in deserialization using a context object already containing Types constructed during serialization. This commit rectifies that by creating a new MLIRContext during deserialization. Reviewed By: mravishankar, antiagainst Differential Revision: https://reviews.llvm.org/D87692
-
Valentin Clement authored
Add missing operands to represent copyin with readonly modifier, copyout with zero modifier and create with zero modifier. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D87874
-
Valentin Clement authored
Following patch D87712, this patch switch AnyInteger for operands gangNum, gangStatic, workerNum, vectoreLength and tileOperands to Index and AnyInteger. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D87848
-
Hanhan Wang authored
Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D87887
-
Nicolas Vasilache authored
This revision allows representing a reduction at the level of linalg on tensors for named ops. When a structured op has a reduction and returns tensor(s), new conventions are added and documented. As an illustration, the syntax for a `linalg.matmul` writing into a buffer is: ``` linalg.matmul ins(%a, %b : memref<?x?xf32>, tensor<?x?xf32>) outs(%c : memref<?x?xf32>) ``` , whereas the syntax for a `linalg.matmul` returning a new tensor is: ``` %d = linalg.matmul ins(%a, %b : tensor<?x?xf32>, memref<?x?xf32>) init(%c : memref<?x?xf32>) -> tensor<?x?xf32> ``` Other parts of linalg will be extended accordingly to allow mixed buffer/tensor semantics in the presence of reductions.
-
https://reviews.llvm.org/D87059Rahul Joshi authored
- Remove spurious ; - Make comparison object invokable as const. Differential Revision: https://reviews.llvm.org/D87872
-
Sean Silva authored
This op is a catch-all for creating witnesses from various random kinds of constraints. In particular, I when dealing with extents directly, which are of `index` type, one can directly use std ops for calculating the predicates, and then use cstr_require for the final conversion to a witness. Differential Revision: https://reviews.llvm.org/D87871
-
Rahul Joshi authored
- Change OpClass new method addition to find and eliminate any existing methods that are made redundant by the newly added method, as well as detect if the newly added method will be redundant and return nullptr in that case. - To facilitate that, add the notion of resolved and unresolved parameters, where resolved parameters have each parameter type known, so that redundancy checks on methods with same name but different parameter types can be done. - Eliminate existing code to avoid adding conflicting/redundant build methods and rely on this new mechanism to eliminate conflicting build methods. Fixes https://bugs.llvm.org/show_bug.cgi?id=47095 Differential Revision: https://reviews.llvm.org/D87059
-
- Sep 17, 2020
-
-
Navdeep Kumar authored
Add support to tile affine.for ops with parametric sizes (i.e., SSA values). Currently supports hyper-rectangular loop nests with constant lower bounds only. Move methods - moveLoopBody(*) - getTileableBands(*) - checkTilingLegality(*) - tilePerfectlyNested(*) - constructTiledIndexSetHyperRect(*) to allow reuse with constant tile size API. Add a test pass -test-affine -parametric-tile to test parametric tiling. Differential Revision: https://reviews.llvm.org/D87353
-
Abhishek Varma authored
Add support for return values in affine.for yield along the same lines as scf.for and affine.parallel. Signed-off-by:
Abhishek Varma <abhishek.varma@polymagelabs.com> Differential Revision: https://reviews.llvm.org/D87437
-
jerryyin authored
-