History log of /llvm-project/mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp (Results 76 – 94 of 94)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


1234