- Sep 30, 2020
-
-
Mahesh Ravishankar authored
while folding tensor_reshape op. While folding reshapes that introduce unit extent dims, the logic to compute the reassociation maps can be generalized to handle some corner cases, for example, when the folded shape still has unit-extent dims but corresponds to folded unit extent dims of the expanded shape. Differential Revision: https://reviews.llvm.org/D88521
-
Jakub Lichman authored
Current setup for conv op vectorization does not enable user to specify tile sizes as well as dimensions for vectorization. In this commit we change that by adding tile sizes as pass arguments. Every dimension with corresponding tile size > 1 is automatically vectorized. Differential Revision: https://reviews.llvm.org/D88533
-
Jakub Lichman authored
This commit adds support for subviews which enable to reduce resulting rank by dropping static dimensions of size 1. Differential Revision: https://reviews.llvm.org/D88534
-
George Mitenkov authored
Added support for different function control in serialization and deserialization. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D88280
-
- Sep 29, 2020
-
-
Eugene Zhulenev authored
Start Async dialect for modeling asynchronous execution. Reviewed By: mehdi_amini, herhut Differential Revision: https://reviews.llvm.org/D88459
-
Valentin Clement authored
This patch introduces the acc.shutdown operation that represents an OpenACC shutdown directive. Clauses are derived from the spec 2.14.2 Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88272
-
Valentin Clement authored
This patch introduces the init operation that represents the init executable directive from the OpenACC 3.0 specifications. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88254
-
Valentin Clement authored
This patch introduce the wait operation that represent the OpenACC wait directive. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88125
-
Valentin Clement authored
This patch introduce the update operation that represent the OpenACC update directive. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88102
-
Nicolas Vasilache authored
Manually-defined named ops do not currently support `init_tensors` or return values and may never support them. Add extra interface to the StructuredOpInterface so that we can still write op-agnostic transformations based on StructuredOpInterface. This is an NFC extension in preparation for tiling on tensors. Differential Revision: https://reviews.llvm.org/D88481
-
Nicolas Vasilache authored
This revision changes the signatures of helper function that Linalg uses to create loops so that they can also take iterArgs. iterArgs are asserted empty to ensure no functional change. This is a mechanical change in preparation of tiling on linalg on tensors to avoid polluting the implementation with an NFC change. Differential Revision: https://reviews.llvm.org/D88480
-
Stephan Herhut authored
The previous implementation did not support sinking simple expressions. In particular, it is often beneficial to sink dim operations. Differential Revision: https://reviews.llvm.org/D88439
-
Valentin Clement authored
Add a basic verifier for the data operation following the restriction from the standard. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88334
-
Mehdi Amini authored
The OmpDialect is in practice optional during translation to LLVM IR: the code is tolerant to have a "nullptr" when not present / needed. The dependency still exists on the export to LLVMIR. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88351
-
Diego Caballero authored
Adding missing code that should have been part of "D85869: Utility to vectorize loop nest using strategy." Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D88346
-
- Sep 28, 2020
-
-
Aart Bik authored
Recently, restrictions on vector reductions were made more relaxed by accepting any width signless integer and floating-point. This CL relaxes the restriction even more by including unsigned and signed integers. Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D88442
-
Valentin Clement authored
This patch remove the printer/parser for the acc.data operation since its syntax fits nicely with the assembly format. It reduces the maintenance for this op. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88330
-
Valentin Clement authored
This patch remove the detach and delete operands. Those operands represent the detach and delete clauses that will appear in another operation acc.exit_data Reviewed By: kiranktp, kiranchandramohan Differential Revision: https://reviews.llvm.org/D88326
-
- Sep 25, 2020
-
-
clementval authored
-
- Sep 24, 2020
-
-
George Mitenkov authored
Fixed an error when deserializing the SPIR-V binary to MLIR SPIR-V. Before, the SPIR-V dialect was not loaded explicitly into the context, which resulted in unregistered operation error. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D88223
-
- Sep 23, 2020
-
-
Rahul Joshi authored
- Use BlockRange in ODS generated builders as well as other places throughout the code Differential Revision: https://reviews.llvm.org/D87955
-
Rahul Joshi authored
- Use TypeRange instead of ArrayRef<Type> where possible. - Change some of the custom builders to also use TypeRange Differential Revision: https://reviews.llvm.org/D87944
-
Stella Laurenzo authored
-
Valentin Clement authored
This patch switch from using bool variables to OptionalParseResult for the parsing inside loop operation. This is already done for parallel operation and this patch unify this in the dialect. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88111
-
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
-
- Sep 22, 2020
-
-
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
The assertion falsely expected ranked memrefs only. Now both, ranked and unranked memrefs are allowed. Differential Revision: https://reviews.llvm.org/D88080
-
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.
-
Fangrui Song authored
-
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
-
- Sep 21, 2020
-
-
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
-
- 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
-
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
-
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.
-
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
-
- 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
-