#
a8f6b576 |
| 16-Mar-2023 |
Nikita Popov <npopov@redhat.com> |
[PassBuilder] Support O0 in default pipelines
The default and pre-link pipeline builders currently require you to call a separate method for optimization level O0, even though they have perfectly we
[PassBuilder] Support O0 in default pipelines
The default and pre-link pipeline builders currently require you to call a separate method for optimization level O0, even though they have perfectly well-defined O0 optimization pipelines.
Accept O0 optimization level and call buildO0DefaultPipeline() internally, so all consumers don't need to repeat this.
Differential Revision: https://reviews.llvm.org/D146200
show more ...
|
#
5273219e |
| 03-Jan-2023 |
Kazu Hirata <kazu@google.com> |
[mlir] Use std::optional instead of llvm::Optional (NFC)
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue
[mlir] Use std::optional instead of llvm::Optional (NFC)
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
#
1a36588e |
| 04-Dec-2022 |
Kazu Hirata <kazu@google.com> |
[mlir] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of ma
[mlir] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
#
f11e0741 |
| 02-Nov-2022 |
Denys Shabalin <shabalin@google.com> |
[mlir] Use the same pipeline tuning options as clang for execution engine
This change make sure that ExecutionEngine's pass pipeline is identical to one used by clang. Previously, SLPVectorization w
[mlir] Use the same pipeline tuning options as clang for execution engine
This change make sure that ExecutionEngine's pass pipeline is identical to one used by clang. Previously, SLPVectorization was not enabled which caused differences in code...
...generation.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D137248
show more ...
|
#
42f5b050 |
| 04-Jul-2022 |
Daniil Dudkin <d.dudkin@partner.samsung.com> |
[mlir][NFC] Fix various warnings generated by GCC 9
Currently, there've been a lot of warnings while building MLIR. This change fixes the warnings listed below.
.../SparseTensorUtils.cpp: In inst
[mlir][NFC] Fix various warnings generated by GCC 9
Currently, there've been a lot of warnings while building MLIR. This change fixes the warnings listed below.
.../SparseTensorUtils.cpp: In instantiation of ‘...::openSparseTensorCOO(...) [with ...]’: .../SparseTensorUtils.cpp:1672:3: required from here .../SparseTensorUtils.cpp:87:21: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘PrimaryType’ [-Wformat=]
.../OptUtils.cpp:36:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
.../AffineOps.cpp:1741:32: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
Reviewed By: aartbik, wrengr, aeubanks
Differential Revision: https://reviews.llvm.org/D128993
show more ...
|
#
7ccd026c |
| 08-Apr-2022 |
Arthur Eubanks <aeubanks@google.com> |
Reland [mlir] Remove uses of LLVM's legacy pass manager
Use the new pass manager.
This also removes the ability to run arbitrary sets of passes. Not sure if this functionality is used, but it doesn
Reland [mlir] Remove uses of LLVM's legacy pass manager
Use the new pass manager.
This also removes the ability to run arbitrary sets of passes. Not sure if this functionality is used, but it doesn't seem to be tested.
No need to initialize passes outside of constructing the PassBuilder with the new pass manager.
Reland: Fixed custom calls to `-lower-matrix-intrinsics` in integration tests by replacing them with `-O0 -enable-matrix`.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D123425
show more ...
|
#
c3efb750 |
| 11-Apr-2022 |
Arthur Eubanks <aeubanks@google.com> |
Revert "[mlir] Remove uses of LLVM's legacy pass manager"
This reverts commit b0f7f6f78d050cc89b31c87fb48744989145af60.
Causes test failures: https://lab.llvm.org/buildbot#builders/61/builds/24879
|
#
b0f7f6f7 |
| 08-Apr-2022 |
Arthur Eubanks <aeubanks@google.com> |
[mlir] Remove uses of LLVM's legacy pass manager
Use the new pass manager.
This also removes the ability to run arbitrary sets of passes. Not sure if this functionality is used, but it doesn't seem
[mlir] Remove uses of LLVM's legacy pass manager
Use the new pass manager.
This also removes the ability to run arbitrary sets of passes. Not sure if this functionality is used, but it doesn't seem to be tested.
No need to initialize passes outside of constructing the PassBuilder with the new pass manager.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D123425
show more ...
|
#
36ce915a |
| 22-Oct-2020 |
Lei Zhang <antiagainst@google.com> |
Revert "Revert "[mlir] Convert from Async dialect to LLVM coroutines""
This reverts commit 4986d5eaff359081a867def1c6a2e1147dbb2ad6 with proper patches to CMakeLists.txt:
- Add MLIRAsync as a depen
Revert "Revert "[mlir] Convert from Async dialect to LLVM coroutines""
This reverts commit 4986d5eaff359081a867def1c6a2e1147dbb2ad6 with proper patches to CMakeLists.txt:
- Add MLIRAsync as a dependency to MLIRAsyncToLLVM - Add Coroutines as a dependency to MLIRExecutionEngine
show more ...
|
#
4986d5ea |
| 22-Oct-2020 |
Mehdi Amini <joker.eph@gmail.com> |
Revert "[mlir] Convert from Async dialect to LLVM coroutines"
This reverts commit a8b0ae3bddee311cbc97801089a95702f32773f8 and commit f8fcff5a9d7ee948add3f28382d4ced5710edaaf.
The build with SHARED
Revert "[mlir] Convert from Async dialect to LLVM coroutines"
This reverts commit a8b0ae3bddee311cbc97801089a95702f32773f8 and commit f8fcff5a9d7ee948add3f28382d4ced5710edaaf.
The build with SHARED_LIBRARY=ON is broken.
show more ...
|
#
f8fcff5a |
| 22-Oct-2020 |
Eugene Zhulenev <ezhulenev@google.com> |
[mlir] Convert from Async dialect to LLVM coroutines
Lower from Async dialect to LLVM by converting async regions attached to `async.execute` operations into LLVM coroutines (https://llvm.org/docs/C
[mlir] Convert from Async dialect to LLVM coroutines
Lower from Async dialect to LLVM by converting async regions attached to `async.execute` operations into LLVM coroutines (https://llvm.org/docs/Coroutines.html): 1. Outline all async regions to functions 2. Add LLVM coro intrinsics to mark coroutine begin/end 3. Use MLIR conversion framework to convert all remaining async types and ops to LLVM + Async runtime function calls
All `async.await` operations inside async regions converted to coroutine suspension points. Await operation outside of a coroutine converted to the blocking wait operations.
Implement simple runtime to support concurrent execution of coroutines.
Reviewed By: herhut
Differential Revision: https://reviews.llvm.org/D89292
show more ...
|
#
30857107 |
| 26-Jan-2020 |
Mehdi Amini <aminim@google.com> |
Mass update the MLIR license header to mention "Part of the LLVM project"
This is an artifact from merging MLIR into LLVM, the file headers are now aligned with the rest of the project.
|
#
56222a06 |
| 23-Dec-2019 |
Mehdi Amini <aminim@google.com> |
Adjust License.txt file to use the LLVM license
PiperOrigin-RevId: 286906740
|
#
8bfedb3c |
| 20-Oct-2019 |
Kazuaki Ishizaki <kiszk@users.noreply.github.com> |
Fix minor spelling tweaks (NFC)
Closes tensorflow/mlir#177
PiperOrigin-RevId: 275692653
|
#
68587dfc |
| 06-Aug-2019 |
Diego Caballero <diego.caballero@intel.com> |
Add TTI pass initialization to pass managers.
Many LLVM transformations benefits from knowing the targets. This enables optimizations, especially in a JIT context when the target is (generally) well
Add TTI pass initialization to pass managers.
Many LLVM transformations benefits from knowing the targets. This enables optimizations, especially in a JIT context when the target is (generally) well-known.
Closes tensorflow/mlir#49
PiperOrigin-RevId: 261840617
show more ...
|
#
772930f8 |
| 22-Jul-2019 |
Jacques Pienaar <jpienaar@google.com> |
Update style/clang-format (NFC).
Update to be consistent & so that future save + clang-format workflows don't introduce extra changes.
PiperOrigin-RevId: 259361174
|
#
79bd6bad |
| 28-Mar-2019 |
Dimitrios Vytiniotis <dvytin@google.com> |
Remove global LLVM CLI variables from library code
Plus move parsing code into the MLIR CPU runner binary.
PiperOrigin-RevId: 240786709
|
#
d9cc3c31 |
| 28-Feb-2019 |
Alex Zinenko <zinenko@google.com> |
ExecutionEngine OptUtils: support -On flags in string-based initialization
Original implementation of OutUtils provided two different LLVM IR module transformers to be used with the MLIR ExecutionEn
ExecutionEngine OptUtils: support -On flags in string-based initialization
Original implementation of OutUtils provided two different LLVM IR module transformers to be used with the MLIR ExecutionEngine: OptimizingTransformer parameterized by the optimization levels (similar to -O3 flags) and LLVMPassesTransformer parameterized by the string formatted similarly to command line options of LLVM's "opt" tool without support for -O* flags. Introduce such support by declaring the flags inside the parser and by populating the pass managers similarly to what "opt" does. Remove the additional flags from mlir-cpu-runner as they can now be wrapped into `-llvm-opts` together with other LLVM-related flags.
PiperOrigin-RevId: 236107292
show more ...
|
#
4bb31f73 |
| 15-Feb-2019 |
Alex Zinenko <zinenko@google.com> |
ExecutionEngine: provide utils for running CLI-configured LLVM passes
A recent change introduced a possibility to run LLVM IR transformation during JIT-compilation in the ExecutionEngine. Provide h
ExecutionEngine: provide utils for running CLI-configured LLVM passes
A recent change introduced a possibility to run LLVM IR transformation during JIT-compilation in the ExecutionEngine. Provide helper functions that construct IR transformers given either clang-style optimization levels or a list passes to run. The latter wraps the LLVM command line option parser to parse strings rather than actual command line arguments. As a result, we can run either of
mlir-cpu-runner -O3 input.mlir mlir-cpu-runner -some-mlir-pass -llvm-opts="-llvm-pass -other-llvm-pass"
to combine different transformations. The transformer builder functions are provided as a separate library that depends on LLVM pass libraries unlike the main execution engine library. The library can be used for integrating MLIR execution engine into external frameworks.
PiperOrigin-RevId: 234173493
show more ...
|