RRiver Riddle[mlir] Refactor SubElementInterface replace support
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir] Update accessors to prefixed form (NFC) Follow up from flipping dialects to both, flip accessor used to prefixed variant ahead to flipping from _Both to _Prefixed. This just flips to the accessors introduced in the preceding change which are just prefixed forms of the existing accessor changed from. Mechanical change using helper script https://github.com/jpienaar/llvm-project/blob/main/clang-tools-extra/clang-tidy/misc/AddGetterCheck.cpp and clang-format. | 3 年前 | |
[mlir] Update accessors to prefixed form (NFC) Follow up from flipping dialects to both, flip accessor used to prefixed variant ahead to flipping from _Both to _Prefixed. This just flips to the accessors introduced in the preceding change which are just prefixed forms of the existing accessor changed from. Mechanical change using helper script https://github.com/jpienaar/llvm-project/blob/main/clang-tools-extra/clang-tidy/misc/AddGetterCheck.cpp and clang-format. | 3 年前 | |
Use llvm::sort instead of std::sort where possible llvm::sort is beneficial even when we use the iterator-based overload, since it can optionally shuffle the elements (to detect non-determinism). However llvm::sort is not usable everywhere, for example, in compiler-rt. Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D130406 | 3 年前 | |
Revert "[mlir][Arithmetic] Add arith.delinearize_index operation" This reverts commit 535b507ba58e8b5f604d53ffc961be1456d229a7. | 3 年前 | |
[mlir] (NFC) Clean up bazel and CMake target names All dialect targets in bazel have been named *Dialect and all dialect targets in CMake have been named MLIR*Dialect. | 3 年前 | |
[mlir] (NFC) Clean up bazel and CMake target names All dialect targets in bazel have been named *Dialect and all dialect targets in CMake have been named MLIR*Dialect. | 3 年前 | |
[mlir] Don't use Optional::getValue (NFC) | 3 年前 | |
[mlir][tensor][bufferize] Fix deallocation of GenerateOp/FromElementsOp Both ops allocate a buffer. There were cases in which the buffer was not deallocated. Differential Revision: https://reviews.llvm.org/D130469 | 3 年前 | |
[mlir][complex] Inverse canonicalization between exp and log We can canonicalize consecutive complex.exp and complex.log which are inverse functions each other. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D128966 | 3 年前 | |
[mlir] Don't use Optional::getValue (NFC) | 3 年前 | |
Revert "Don't use Optional::hasValue (NFC)" This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d. | 3 年前 | |
[mlir] Update flipped accessors (NFC) Follow up with memref flipped and flipping any intermediate changes made. | 3 年前 | |
[mlir] move SCF headers to SCF/{IR,Transforms} respectively This aligns the SCF dialect file layout with the majority of the dialects. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D128049 | 3 年前 | |
[mlir] Refactor the Parser library in preparation for an MLIR binary format The current Parser library is solely focused on providing API for the textual MLIR format, but MLIR will soon also provide a binary format. This commit renames the current Parser library to AsmParser to better correspond to what the library is actually intended for. A new Parser library is added which will act as a unified parser interface between both text and binary formats. Most parser clients are unaffected, given that the unified interface is essentially the same as the current interface. Only clients that rely on utilizing the AsmParserState, or those that want to parse Attributes/Types need to be updated to point to the AsmParser library. Differential Revision: https://reviews.llvm.org/D129605 | 3 年前 | |
[mlir] Refactor SubElementInterface replace support The current support was essentially the amount necessary to support replacing SymbolRefAttrs, but suffers from various deficiencies (both ergonomic and functional): * Replace crashes if unsupported This makes it really hard to use safely, given that you don't know if you are going to crash or not when using it. * Types aren't supported This seems like a simple missed addition when the attribute replacement support was originally added. * The ergonomics are weird It currently uses an index based replacement, which makes the implementations quite clunky. This commit refactors support to be a bit more ergonomic, and also adds support for types in the process. This was also a great oppurtunity to greatly simplify how replacement is done in the symbol table. Fixes #56355 Differential Revision: https://reviews.llvm.org/D130589 | 3 年前 | |
[mlir] Refactor the Parser library in preparation for an MLIR binary format The current Parser library is solely focused on providing API for the textual MLIR format, but MLIR will soon also provide a binary format. This commit renames the current Parser library to AsmParser to better correspond to what the library is actually intended for. A new Parser library is added which will act as a unified parser interface between both text and binary formats. Most parser clients are unaffected, given that the unified interface is essentially the same as the current interface. Only clients that rely on utilizing the AsmParserState, or those that want to parse Attributes/Types need to be updated to point to the AsmParser library. Differential Revision: https://reviews.llvm.org/D129605 | 3 年前 | |
[mlir] Split MLProgram global load and store to Graph variants * Split ops into X_graph variants as discussed; * Remove tokens from non-Graph region variants and rely on side-effect modelling there while removing side-effect modelling from Graph variants and relying on explicit ordering there; * Make tokens required to be produced by Graph variants - but kept explicit token type specification given previous discussion on this potentially being configurable in future; This results in duplicating some code. I considered adding helper functions but decided against adding an abstraction there early given size of duplication and creating accidental coupling. Differential Revision: https://reviews.llvm.org/D127813 | 3 年前 | |
[mlir][Math] Add constant folder for Exp2Op. This patch adds constant folder for Exp2Op which only supports single and double precision floating-point. Differential Revision: https://reviews.llvm.org/D130472 | 3 年前 | |
[mlir] (NFC) run clang-format on all files | 3 年前 | |
[mlir][NVGPU] Verifier for nvgpu.ldmatrix * Adds verifiers for nvgpu.ldmatrix op * Adds tests to mlir/test/Dialect/NVGPU/invalid.mlir Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D129669 | 3 年前 | |
Revert "Don't use Optional::hasValue (NFC)" This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d. | 3 年前 | |
[mlir][ods] Replace redundant Type instances for interfaces This patch makes use of TypeInterface implementing Type to remove instances of Type that simply checked whether a type implemented a given interface. As part of this refactoring, some changes had to be done in the OpenMP Dialect files. In particular, they assumed that OpenMPOps.td to only ever include OpenMP TypeInterfaces, which did not hold anymore with a moved include in LLVMOpBase.td. For that reason, the type interface defintions were moved into a new file as is convention. Differential Revision: https://reviews.llvm.org/D129210 | 3 年前 | |
[mlir:LSP] Add support for code completing attributes and types This required changing a bit of how attributes/types are parsed. A new KeywordSwitch class was added to AsmParser that provides a StringSwitch like API for parsing keywords with a set of potential matches. It intends to both provide a cleaner API, and enable injection for code completion. This required changing the API of generated(Attr|Type)Parser to handle the parsing of the keyword, instead of having the user do it. Most upstream dialects use the autogenerated handling and didn't require a direct update. Differential Revision: https://reviews.llvm.org/D129267 | 3 年前 | |
[mlir] (NFC) Clean up bazel and CMake target names All dialect targets in bazel have been named *Dialect and all dialect targets in CMake have been named MLIR*Dialect. | 3 年前 | |
[mlir] Update flipped accessors (NFC) Follow up with memref flipped and flipping any intermediate changes made. | 3 年前 | |
[mlir] Transform dialect: separate dependent and generated dialects In the Transform dialect extensions, provide the separate mechanism to declare dependent dialects (the dialects the transform IR depends on) and the generated dialects (the dialects the payload IR may be transformed into). This allows the Transform dialect clients that are only constructing the transform IR to avoid loading the dialects relevant for the payload IR along with the Transform dialect itself, thus decreasing the build/link time. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D130289 | 3 年前 | |
[mlir][spirv] Rename spv.GLSL ops to spv.GL. NFC. This is to improve consistency within the SPIR-V dialect and make these ops a bit shorter. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D130280 | 3 年前 | |
[mlir] Use value instead of getValue (NFC) | 3 年前 | |
[mlir] Flip dialects to _Prefixed At least two weeks passed since flipped to _Both. Made some additional NFC changes in .td files that were not converted earlier. | 3 年前 | |
[mlir][tensor][bufferize][NFC] Remove duplicate code InsertSliceOp and ParallelInsertSliceOp are very similar and can share some of the bufferization analysis code. Differential Revision: https://reviews.llvm.org/D130465 | 3 年前 | |
Use callables directly in any_of, count_if, etc (NFC) | 3 年前 | |
[mlir][transform] Add ForeachOp to transform dialect This op "unbatches" an op handle and executes the loop body for each payload op. Differential Revision: https://reviews.llvm.org/D130257 | 3 年前 | |
[mlir][Linalg] Add a TileToForeachThread transform. This revision adds a new transformation to tile a TilingInterface op to a tiled scf.foreach_thread, applying tiling by num_threads. If non-empty, the threadDimMapping is added as an attribute to the resulting scf.foreach_thread. 0-tile sizes (i.e. tile by the full size of the data) are used to encode that a dimension is not tiled. Differential Revision: https://reviews.llvm.org/D129577 | 3 年前 | |
Generalize the vector transfer flattening patterns (dyn shapes). Differential Revision: https://reviews.llvm.org/D130284 | 3 年前 | |
[mlir] Update accessors to prefixed form (NFC) Follow up from flipping dialects to both, flip accessor used to prefixed variant ahead to flipping from _Both to _Prefixed. This just flips to the accessors introduced in the preceding change which are just prefixed forms of the existing accessor changed from. Mechanical change using helper script https://github.com/jpienaar/llvm-project/blob/main/clang-tools-extra/clang-tidy/misc/AddGetterCheck.cpp and clang-format. | 3 年前 | |
[MLIR][AMDGPU] Add AMDGPU dialect, wrappers around raw buffer intrinsics By analogy with the NVGPU dialect, introduce an AMDGPU dialect for AMD-specific intrinsic wrappers. The dialect initially includes wrappers around the raw buffer intrinsics. On AMD GPUs, a memref can be converted to a "buffer descriptor" that allows more precise control of memory access, such as by allowing for out of bounds loads/stores to be replaced by 0/ignored without adding additional conditional logic, which is important for performance. The repository currently contains a limited conversion from transfer_read/transfer_write to Mubuf intrinsics, which are an older, deprecated intrinsic for the same functionality. The new amdgpu.raw_buffer_* ops allow these operations to be used explicitly and for including metadata such as whether the target chipset is an RDNA chip or not (which impacts the interpretation of some bits in the buffer descriptor), while still maintaining an MLIR-like interface. (This change also exposes the floating-point atomic add intrinsic.) Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D122765 | 4 年前 | |
[mlir] Fix broadcasting check with 1 values The trait was inconsistent with the other broadcasting logic here. And also fix printing here to use ? rather than -1 in the error. Differential Revision: https://reviews.llvm.org/D105748 | 4 年前 |