Revision tags: llvmorg-9.0.1-rc2 |
|
#
b8cd0c14 |
| 05-Dec-2019 |
Tres Popp <tpopp@google.com> |
Move ModuleManager functionality into mlir::SymbolTable.
Note for broken code, the following transformations occurred: ModuleManager::insert(Block::iterator, Operation*) - > SymbolTable::insert(Oper
Move ModuleManager functionality into mlir::SymbolTable.
Note for broken code, the following transformations occurred: ModuleManager::insert(Block::iterator, Operation*) - > SymbolTable::insert(Operation*, Block::iterator) ModuleManager::lookupSymbol -> SymbolTable::lookup ModuleManager::getModule() -> SymbolTable::getOp() ModuleManager::getContext() -> SymbolTable::getOp()->getContext() ModuleManager::* -> SymbolTable::* PiperOrigin-RevId: 283944635
show more ...
|
Revision tags: llvmorg-9.0.1-rc1 |
|
#
abb62668 |
| 20-Nov-2019 |
Stephan Herhut <herhut@google.com> |
Extend kernel outlining to also consider dim worth inlining.
PiperOrigin-RevId: 281483447
|
#
9b9c647c |
| 12-Nov-2019 |
River Riddle <riverriddle@google.com> |
Add support for nested symbol references.
This change allows for adding additional nested references to a SymbolRefAttr to allow for further resolving a symbol if that symbol also defines a SymbolTa
Add support for nested symbol references.
This change allows for adding additional nested references to a SymbolRefAttr to allow for further resolving a symbol if that symbol also defines a SymbolTable. If a referenced symbol also defines a symbol table, a nested reference can be used to refer to a symbol within that table. Nested references are printed after the main reference in the following form:
symbol-ref-attribute ::= symbol-ref-id (`::` symbol-ref-id)*
Example:
module @reference { func @nested_reference() }
my_reference_op @reference::@nested_reference
Given that SymbolRefAttr is now more general, the existing functionality centered around a single reference is moved to a derived class FlatSymbolRefAttr. Followup commits will add support to lookups, rauw, etc. for scoped references.
PiperOrigin-RevId: 279860501
show more ...
|
#
9fbf52e3 |
| 09-Nov-2019 |
MLIR Team <no-reply@google.com> |
Look for SymbolRefAttr in KernelOutlining instead of hard-coding CallOp
This code should be exercised using the existing kernel outlining unit test, but let me know if I should add a dedicated unit
Look for SymbolRefAttr in KernelOutlining instead of hard-coding CallOp
This code should be exercised using the existing kernel outlining unit test, but let me know if I should add a dedicated unit test using a fake call instruction as well.
PiperOrigin-RevId: 279436321
show more ...
|
#
b74af4aa |
| 21-Oct-2019 |
Christian Sigg <csigg@google.com> |
Unify GPU op definition names with other dialects.
Rename GPU op names from gpu_Foo to GPU_FooOp.
PiperOrigin-RevId: 275882232
|
#
8bfedb3c |
| 20-Oct-2019 |
Kazuaki Ishizaki <kiszk@users.noreply.github.com> |
Fix minor spelling tweaks (NFC)
Closes tensorflow/mlir#177
PiperOrigin-RevId: 275692653
|
#
90d65d32 |
| 08-Oct-2019 |
Alex Zinenko <zinenko@google.com> |
Use named modules for gpu.launch_func
The kernel function called by gpu.launch_func is now placed into an isolated nested module during the outlining stage to simplify separate compilation. Until re
Use named modules for gpu.launch_func
The kernel function called by gpu.launch_func is now placed into an isolated nested module during the outlining stage to simplify separate compilation. Until recently, modules did not have names and could not be referenced. This limitation was circumvented by introducing a stub kernel at the same name at the same nesting level as the module containing the actual kernel. This relation is only effective in one direction: from actual kernel function to its launch_func "caller".
Leverage the recently introduced symbol name attributes on modules to refer to a specific nested module from `gpu.launch_func`. This removes the implicit connection between the identically named stub and kernel functions. It also enables support for `gpu.launch_func`s to call different kernels located in the same module.
PiperOrigin-RevId: 273491891
show more ...
|
#
74cdbf59 |
| 24-Sep-2019 |
Christian Sigg <csigg@google.com> |
Clone called functions into nested GPU module.
PiperOrigin-RevId: 270891190
|
#
b8676da1 |
| 23-Sep-2019 |
Christian Sigg <csigg@google.com> |
Outline GPU kernel function into a nested module.
Roll forward of commit 5684a12.
When outlining GPU kernels, put the kernel function inside a nested module. Then use a nested pipeline to generate
Outline GPU kernel function into a nested module.
Roll forward of commit 5684a12.
When outlining GPU kernels, put the kernel function inside a nested module. Then use a nested pipeline to generate the cubins, independently per kernel. In a final pass, move the cubins back to the parent module.
PiperOrigin-RevId: 270639748
show more ...
|
#
2df646be |
| 19-Sep-2019 |
George Karpenkov <cheshire@google.com> |
Automated rollback of commit 5684a12434f923d03b6870f2aa16226bfb0b38b6
PiperOrigin-RevId: 270126672
|
#
5684a124 |
| 19-Sep-2019 |
MLIR Team <no-reply@google.com> |
Outline GPU kernel function into a nested module.
When outlining GPU kernels, put the kernel function inside a nested module. Then use a nested pipeline to generate the cubins, independently per ker
Outline GPU kernel function into a nested module.
When outlining GPU kernels, put the kernel function inside a nested module. Then use a nested pipeline to generate the cubins, independently per kernel. In a final pass, move the cubins back to the parent module.
PiperOrigin-RevId: 269987720
show more ...
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6 |
|
#
f1b100c7 |
| 13-Sep-2019 |
River Riddle <riverriddle@google.com> |
NFC: Finish replacing FunctionPassBase/ModulePassBase with OpPassBase.
These directives were temporary during the generalization of FunctionPass/ModulePass to OpPass.
PiperOrigin-RevId: 268970259
|
Revision tags: llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4 |
|
#
318ff019 |
| 09-Sep-2019 |
Stephan Herhut <herhut@google.com> |
Addressing some late review comments on kernel inlining.
Just formatting and better lit tests, no functional change.
PiperOrigin-RevId: 267942907
|
#
dfd06af5 |
| 04-Sep-2019 |
Stephan Herhut <herhut@google.com> |
Make GPU kernel outlining inline constants.
It is generally beneficial to pass less arguments to a kernel, so cloning constants into the kernel is beneficial.
PiperOrigin-RevId: 267139084
|
Revision tags: llvmorg-9.0.0-rc3 |
|
#
4bfae66d |
| 29-Aug-2019 |
River Riddle <riverriddle@google.com> |
Refactor the 'walk' methods for operations.
This change refactors and cleans up the implementation of the operation walk methods. After this refactoring is that the explicit template parameter for t
Refactor the 'walk' methods for operations.
This change refactors and cleans up the implementation of the operation walk methods. After this refactoring is that the explicit template parameter for the operation type is no longer needed for the explicit op walks. For example:
op->walk<AffineForOp>([](AffineForOp op) { ... });
is now accomplished via:
op->walk([](AffineForOp op) { ... });
PiperOrigin-RevId: 266209552
show more ...
|
#
ba0fa925 |
| 19-Aug-2019 |
River Riddle <riverriddle@google.com> |
NFC: Move LLVMIR, SDBM, and StandardOps to the Dialect/ directory. PiperOrigin-RevId: 264193915
|
#
79f53b0c |
| 17-Aug-2019 |
Jacques Pienaar <jpienaar@google.com> |
Change from llvm::make_unique to std::make_unique
Switch to C++14 standard method as llvm::make_unique has been removed ( https://reviews.llvm.org/D66259). Also mark some targets as c++14 to ease ne
Change from llvm::make_unique to std::make_unique
Switch to C++14 standard method as llvm::make_unique has been removed ( https://reviews.llvm.org/D66259). Also mark some targets as c++14 to ease next integrates.
PiperOrigin-RevId: 263953918
show more ...
|
Revision tags: llvmorg-9.0.0-rc2 |
|
#
926fb685 |
| 13-Aug-2019 |
Mehdi Amini <aminim@google.com> |
Express ownership transfer in PassManager API through std::unique_ptr (NFC)
Since raw pointers are always passed around for IR construct without implying any ownership transfer, it can be error pron
Express ownership transfer in PassManager API through std::unique_ptr (NFC)
Since raw pointers are always passed around for IR construct without implying any ownership transfer, it can be error prone to have implicit ownership transferred the same way. For example this code can seem harmless:
Pass *pass = .... pm.addPass(pass); pm.addPass(pass); pm.run(module);
PiperOrigin-RevId: 263053082
show more ...
|
Revision tags: llvmorg-9.0.0-rc1 |
|
#
60965b46 |
| 25-Jul-2019 |
Alex Zinenko <zinenko@google.com> |
Move GPU dialect to {lib,include/mlir}/Dialect
Per tacit agreement, individual dialects should now live in lib/Dialect/Name with headers in include/mlir/Dialect/Name and tests in test/Dialect/Name.
Move GPU dialect to {lib,include/mlir}/Dialect
Per tacit agreement, individual dialects should now live in lib/Dialect/Name with headers in include/mlir/Dialect/Name and tests in test/Dialect/Name.
PiperOrigin-RevId: 259896851
show more ...
|