Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3 |
|
#
4f4cd963 |
| 24-Apr-2023 |
Jakub Kuderski <kubak@google.com> |
[mlir][spirv] Fix OOB error in TestModuleCombiner
Also fix a typo in the surrounding code.
Fixes: https://github.com/llvm/llvm-project/issues/62318
Reviewed By: qedawkins
Differential Revision: h
[mlir][spirv] Fix OOB error in TestModuleCombiner
Also fix a typo in the surrounding code.
Fixes: https://github.com/llvm/llvm-project/issues/62318
Reviewed By: qedawkins
Differential Revision: https://reviews.llvm.org/D149069
show more ...
|
Revision tags: llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
#
5ab6ef75 |
| 26-Sep-2022 |
Jakub Kuderski <kubak@google.com> |
[mlir][spirv] Change dialect name from 'spv' to 'spirv'
Tested with `check-mlir` and `check-mlir-integration`.
Issue: https://github.com/llvm/llvm-project/issues/56863
Reviewed By: antiagainst
Di
[mlir][spirv] Change dialect name from 'spv' to 'spirv'
Tested with `check-mlir` and `check-mlir-integration`.
Issue: https://github.com/llvm/llvm-project/issues/56863
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D134620
show more ...
|
#
90a1632d |
| 24-Sep-2022 |
Jakub Kuderski <kubak@google.com> |
[mlir][spirv] Switch to kEmitAccessorPrefix_Predixed
Fixes https://github.com/llvm/llvm-project/issues/57887
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D134580
|
Revision tags: llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
#
0c7890c8 |
| 18-Nov-2021 |
River Riddle <riddleriver@gmail.com> |
[mlir] Convert NamedAttribute to be a class
NamedAttribute is currently represented as an std::pair, but this creates an extremely clunky .first/.second API. This commit converts it to a class, with
[mlir] Convert NamedAttribute to be a class
NamedAttribute is currently represented as an std::pair, but this creates an extremely clunky .first/.second API. This commit converts it to a class, with better accessors (getName/getValue) and also opens the door for more convenient API in the future.
Differential Revision: https://reviews.llvm.org/D113956
show more ...
|
#
2da3facd |
| 02-Oct-2021 |
Mehdi Amini <joker.eph@gmail.com> |
Fix memory leak in MLIR SPIRV ModuleCombiner
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
#
41d4aa7d |
| 29-Aug-2021 |
Chris Lattner <clattner@nondot.org> |
[SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr.
SymbolRefAttr is fundamentally a base string plus a sequence of nested references. Instead of storing the string data as a copies StringRe
[SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr.
SymbolRefAttr is fundamentally a base string plus a sequence of nested references. Instead of storing the string data as a copies StringRef, store it as an already-uniqued StringAttr.
This makes a lot of things simpler and more efficient because: 1) references to the symbol are already stored as StringAttr's: there is no need to copy the string data into MLIRContext multiple times. 2) This allows pointer comparisons instead of string comparisons (or redundant uniquing) within SymbolTable.cpp. 3) This allows SymbolTable to hold a DenseMap instead of a StringMap (which again copies the string data and slows lookup).
This is a moderately invasive patch, so I kept a lot of compatibility APIs around. It would be nice to explore changing getName() to return a StringAttr for example (right now you have to use getNameAttr()), and eliminate things like the StringRef version of getSymbol.
Differential Revision: https://reviews.llvm.org/D108899
show more ...
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1 |
|
#
23326b9f |
| 28-Jul-2021 |
Lei Zhang <antiagainst@google.com> |
[mlir][spirv] Fix a few issues in ModuleCombiner
- Fixed symbol insertion into `symNameToModuleMap`. Insertion needs to happen whether symbols are renamed or not. - Added check for the VCE triple
[mlir][spirv] Fix a few issues in ModuleCombiner
- Fixed symbol insertion into `symNameToModuleMap`. Insertion needs to happen whether symbols are renamed or not. - Added check for the VCE triple and avoid dropping it. - Disabled function deduplication. It requires more careful rules. Right now it can remove different functions. - Added tests for symbol rename listener. - And some other code/comment cleanups.
Reviewed By: ergawy
Differential Revision: https://reviews.llvm.org/D106886
show more ...
|
Revision tags: llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
#
56f60a1c |
| 09-Jun-2021 |
Lei Zhang <antiagainst@google.com> |
[mlir][spirv] Use SingleBlock + NoTerminator for spv.module
This allows us to remove the `spv.mlir.endmodule` op and all the code associated with it.
Along the way, tightened the APIs for `spv.modu
[mlir][spirv] Use SingleBlock + NoTerminator for spv.module
This allows us to remove the `spv.mlir.endmodule` op and all the code associated with it.
Along the way, tightened the APIs for `spv.module` a bit by removing some aliases. Now we use `getRegion` to get the only region, and `getBody` to get the region's only block.
Reviewed By: mravishankar, hanchung
Differential Revision: https://reviews.llvm.org/D103265
show more ...
|
Revision tags: llvmorg-12.0.1-rc1 |
|
#
41bc54cc |
| 06-May-2021 |
Lei Zhang <antiagainst@google.com> |
[mlir][spirv] NFC: Replace OwningSPIRVModuleRef with OwningOpRef
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D102009
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
#
f88fab50 |
| 07-Jan-2021 |
Kazuaki Ishizaki <ishizaki@jp.ibm.com> |
[mlir] NFC: fix trivial typos
fix typo under include and lib directories
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D94220
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
#
01178654 |
| 17-Dec-2020 |
Lei Zhang <antiagainst@google.com> |
[mlir][spirv] NFC: Shuffle code around to better follow convention
This commit shuffles SPIR-V code around to better follow MLIR convention. Specifically,
* Created IR/, Transforms/, Linking/, and
[mlir][spirv] NFC: Shuffle code around to better follow convention
This commit shuffles SPIR-V code around to better follow MLIR convention. Specifically,
* Created IR/, Transforms/, Linking/, and Utils/ subdirectories and moved suitable code inside. * Created SPIRVEnums.{h|cpp} for SPIR-V C/C++ enums generated from SPIR-V spec. Previously they are cluttered inside SPIRVTypes.{h|cpp}. * Fixed include guards in various header files (both .h and .td). * Moved serialization tests under test/Target/SPIRV. * Renamed TableGen backend -gen-spirv-op-utils into -gen-spirv-attr-utils as it is only generating utility functions for attributes.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D93407
show more ...
|
#
c4a04059 |
| 28-Nov-2020 |
Christian Sigg <csigg@google.com> |
Add `Operation* OpState::operator->()` to provide more convenient access to members of Operation.
Given that OpState already implicit converts to Operator*, this seems reasonable.
The alternative w
Add `Operation* OpState::operator->()` to provide more convenient access to members of Operation.
Given that OpState already implicit converts to Operator*, this seems reasonable.
The alternative would be to add more functions to OpState which forward to Operation.
Reviewed By: rriddle, ftynse
Differential Revision: https://reviews.llvm.org/D92266
show more ...
|
Revision tags: llvmorg-11.0.1-rc1 |
|
#
341f3c11 |
| 19-Nov-2020 |
ergawy <kareem.ergawy@gmail.com> |
[MLIR][SPIRV] ModuleCombiner: deduplicate global vars, spec consts, and funcs.
This commit extends the functionality of the SPIR-V module combiner library by adding new deduplication capabilities. I
[MLIR][SPIRV] ModuleCombiner: deduplicate global vars, spec consts, and funcs.
This commit extends the functionality of the SPIR-V module combiner library by adding new deduplication capabilities. In particular, implementation of deduplication of global variables and specialization constants, and functions is introduced.
For global variables, 2 variables are considered duplicate if they either have the same descriptor set + binding or the same built_in attribute.
For specialization constants, 2 spec constants are considered duplicate if they have the same spec_id attribute.
2 functions are deduplicated if they are identical. 2 functions are identical if they have the same prototype, attributes, and body.
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D90951
show more ...
|
#
90a8260c |
| 30-Oct-2020 |
ergawy <kareem.ergawy@gmail.com> |
[MLIR][SPIRV] Start module combiner.
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine
[MLIR][SPIRV] Start module combiner.
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine a number of MLIR spv modules, we move all the module-level ops from all the input modules into one big combined module. To that end, the combination process can proceed in 2 phases:
(1) resolving conflicts between pairs of ops from different modules (2) deduplicate equivalent ops/sub-ops in the merged module. (TODO)
This patch implements only the first phase.
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D90477
show more ...
|
#
27324f28 |
| 30-Oct-2020 |
ergawy <kareem.ergawy@gmail.com> |
[MLIR][SPIRV] Start module combiner.
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine
[MLIR][SPIRV] Start module combiner.
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine a number of MLIR spv modules, we move all the module-level ops from all the input modules into one big combined module. To that end, the combination process can proceed in 2 phases:
(1) resolving conflicts between pairs of ops from different modules (2) deduplicate equivalent ops/sub-ops in the merged module. (TODO)
This patch implements only the first phase.
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D90477
show more ...
|
#
316593ce |
| 30-Oct-2020 |
ergawy <kareem.ergawy@gmail.com> |
[MLIR][SPIRV] Start module combiner
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine a
[MLIR][SPIRV] Start module combiner
This commit adds a new library that merges/combines a number of spv modules into a combined one. The library has a single entry point: combine(...).
To combine a number of MLIR spv modules, we move all the module-level ops from all the input modules into one big combined module. To that end, the combination process can proceed in 2 phases:
(1) resolving conflicts between pairs of ops from different modules (2) deduplicate equivalent ops/sub-ops in the merged module. (TODO)
This patch implements only the first phase.
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D90022
show more ...
|