- May 13, 2021
-
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102235
-
Matthias Springer authored
Create a copy of vector-to-loops.mlir and adapt the test for ProgressiveVectorToSCF. Fix a small bug in getExtractOp() triggered by this test. Differential Revision: https://reviews.llvm.org/D102388
-
Matthias Springer authored
Do not rely on pass labels to detect if the pattern was already applied in the past (which allows for more some extra optimizations to avoid extra InsertOps and ExtractOps). Instead, check if these optimizations can be applied on-the-fly. This also fixes a bug, where vector.insert and vector.extract ops sometimes disappeared in the middle of the pass because they get folded away, but the next application of the pattern expected them to be there. Differential Revision: https://reviews.llvm.org/D102206
-
Matthias Springer authored
These two patterns allow for more efficient codegen in VectorToSCF. Differential Revision: https://reviews.llvm.org/D102222
-
Rob Suderman authored
Rounding to integers requires rounding (for floating points) and clipping to the min/max values of the destination range. Added this behavior and updated tests appropriately. Reviewed By: sjarus, silvas Differential Revision: https://reviews.llvm.org/D102375
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D102042
-
Matthias Springer authored
Instead of an SCF for loop, these pattern generate fully unrolled loops with no temporary buffer allocations. Differential Revision: https://reviews.llvm.org/D101981
-
Matthias Springer authored
Such ops are no-ops and are folded to their respective `source`/`vector` operand. Differential Revision: https://reviews.llvm.org/D101879
-
Matthias Springer authored
Broadcast dimensions of a vector transfer op have no corresponding dimension in the mask vector. E.g., a 2-D TransferReadOp, where one dimension is a broadcast, can have a 1-D `mask` attribute. This commit also adds a few additional transfer op integration tests for various combinations of broadcasts, masking, dim transposes, etc. Differential Revision: https://reviews.llvm.org/D101745
-
Matthias Springer authored
This reverts commit c9087788. Accidentally pushed old version of the commit.
-
Matthias Springer authored
Broadcast dimensions of a vector transfer op have no corresponding dimension in the mask vector. E.g., a 2-D TransferReadOp, where one dimension is a broadcast, can have a 1-D `mask` attribute. This commit also adds a few additional transfer op integration tests for various combinations of broadcasts, masking, dim transposes, etc. Differential Revision: https://reviews.llvm.org/D101745
-
Aart Bik authored
First set of "boilerplate" to get sparse tensor passes available through CAPI and Python. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D102362
-
- May 12, 2021
-
-
Eugene Zhulenev authored
Address comments in https://reviews.llvm.org/D102226 to fix the bug + style violations Differential Revision: https://reviews.llvm.org/D102368
-
River Riddle authored
[mlir-lsp-server][NFC] Add newline between Protocol JSON serialization methods and class definitions.
-
River Riddle authored
This allows for diagnostics emitted during parsing/verification to be surfaced to the user by the language client, as opposed to just being emitted to the logs like they are now. Differential Revision: https://reviews.llvm.org/D102293
-
Suraj Sudhir authored
Removes the identityn operator from TOSA MLIR definition. Removes TosaToLinAlg mappings Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D102329
-
Rob Suderman authored
Rank-0 case causes a graph during linalg reshape operation. Differential Revision: https://reviews.llvm.org/D102282
-
Valentin Clement authored
This patch begins to translate acc.enter_data operation to call to tgt runtime call. It currently only translate create/copyin operands of memref type. This acts as a basis to add support for FIR types in the Flang/OpenACC support. It follows more or less a similar path than clang with `omp target enter data map` directives. This patch is taking a different approach than D100678 and perform a translation to LLVM IR and make use of the OpenMPIRBuilder instead of doing a conversion to the LLVMIR dialect. OpenACC support in Flang will rely on the current OpenMP runtime where 1:1 lowering can be applied. Some extension will be added where features are not available yet. Big part of this code will be shared for other standalone data operations in the OpenACC dialect such as acc.exit_data and acc.update. It is likely that parts of the lowering can also be shared later with the ops for standalone data directives in the OpenMP dialect when they are introduced. This is an initial translation and it probably needs more work. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D101504
-
Inho Seo authored
The current static checker for linalg does not work on the decreasing index cases well. So, this is to Update the current static bound checker for linalg to cover decreasing index cases. Reviewed By: hanchung Differential Revision: https://reviews.llvm.org/D102302
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D102285
-
Fabian Schuiki authored
This factors out the pass timing code into a separate `TimingManager` that can be plugged into the `PassManager` from the outside. Users are able to provide their own implementation of this manager, and use it to time additional code paths outside of the pass manager. Also allows for multiple `PassManager`s to run and contribute to a single timing report. More specifically, moves most of the existing infrastructure in `Pass/PassTiming.cpp` into a new `Support/Timing.cpp` file and adds a public interface in `Support/Timing.h`. The `PassTiming` instrumentation becomes a wrapper around the new timing infrastructure which adapts the instrumentation callbacks to the new timers. Reviewed By: rriddle, lattner Differential Revision: https://reviews.llvm.org/D100647
-
Valentin Clement authored
Add a conversion pass to convert higher-level type before translation. This conversion extract meangingful information and pack it into a struct that the translation (D101504) will be able to understand. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D102170
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102245
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102308
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102236
-
Ulysse Beaugnon authored
DialectAsmParser already allows converting an llvm::SMLoc location to a mlir::Location location. This commit adds the same functionality to OpAsmParser. Implementation is copied from DialectAsmParser. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D102165
-
Dumitru Potop authored
First step in adding alignment as an attribute to MLIR global definitions. Alignment can be specified for global objects in LLVM IR. It can also be specified as a named attribute in the LLVMIR dialect of MLIR. However, this attribute has no standing and is discarded during translation from MLIR to LLVM IR. This patch does two things: First, it adds the attribute to the syntax of the llvm.mlir.global operation, and by doing this it also adds accessors and verifications. The syntax is "align=XX" (with XX being an integer), placed right after the value of the operation. Second, it allows transforming this operation to and from LLVM IR. It is checked whether the value is an integer power of 2. Reviewed By: ftynse, mehdi_amini Differential Revision: https://reviews.llvm.org/D101492
-
Chia-hung Duan authored
Address the TODO of removing recursion while SSA naming. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D102226
-
- May 11, 2021
-
-
Rob Suderman authored
Updated tests to include broadcast of left and right. Includes bypass if in-type and out-type match shape (no broadcasting). Differential Revision: https://reviews.llvm.org/D102276
-
River Riddle authored
Diagnostics are intended to be read by users, and in most cases displayed in a terminal. When not eliding huge element attributes, in some cases we end up dumping hundreds of megabytes(gigabytes) to the terminal (or logs), completely obfuscating the main diagnostic being shown. Differential Revision: https://reviews.llvm.org/D102272
-
Sean Silva authored
This is useful for dialects that have logical subparts. Differential Revision: https://reviews.llvm.org/D102200
-
Benjamin Kramer authored
This is actually necessary for correctness, as memref.reinterpret_cast doesn't verify if the output shape doesn't match the static sizes. Differential Revision: https://reviews.llvm.org/D102232
-
Uday Bondhugula authored
Switch llvm.noalias attribute from a boolean attribute to a unit attribute. Differential Revision: https://reviews.llvm.org/D102225
-
Tres Popp authored
VectorTransfer split previously only split read xfer ops. This adds the same logic to write ops. The resulting code involves 2 conditionals for write ops while read ops only needed 1, but the created ops are built upon the same patterns, so pattern matching/expectations are all consistent other than in regards to the if/else ops. Differential Revision: https://reviews.llvm.org/D102157
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102187
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102174
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102176
-
Chris Lattner authored
OpAsmParser (and DialectAsmParser) supports a pair of parseInteger/parseOptionalInteger methods, which allow parsing a bare integer into a C type of your choice (e.g. int8_t) using templates. It was implemented in terms of a virtual method call that is hard coded to int64_t because "that should be big enough". Change the virtual method hook to return an APInt instead. This allows asmparsers for custom ops to parse large integers if they want to, without changing any of the clients of the fixed size C API. Differential Revision: https://reviews.llvm.org/D102120
-
Aart Bik authored
All glue and clutter in the linalg ops has been replaced by proper sparse tensor type encoding. This code is no longer needed. Thanks to ntv@ for giving us a temporary home in linalg. So long, and thanks for all the fish. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D102098
-
Benjamin Kramer authored
This trivially folds into a constant when all operands are constant. Differential Revision: https://reviews.llvm.org/D102199
-