| #
05289dfb |
| 07-Jun-2021 |
Stanislav Mekhanoshin <[email protected]> |
[AMDGPU] Handle constant LDS uses from different kernels
This allows to lower an LDS variable into a kernel structure even if there is a constant expression used from different kernels.
Differentia
[AMDGPU] Handle constant LDS uses from different kernels
This allows to lower an LDS variable into a kernel structure even if there is a constant expression used from different kernels.
Differential Revision: https://reviews.llvm.org/D103655
show more ...
|
| #
713ca2f3 |
| 07-Jun-2021 |
hsmahesha <[email protected]> |
[AMDGPU] Introduce command line switch to control super aligning of LDS.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D103817
|
| #
52ffbfdf |
| 07-Jun-2021 |
hsmahesha <[email protected]> |
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.
Before packing LDS globals into a sorted structure, make sure that their alignment is properly updated based on their siz
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.
Before packing LDS globals into a sorted structure, make sure that their alignment is properly updated based on their size. This will make sure that the members of sorted structure are properly aligned, and hence it will further reduce the probability of unaligned LDS access.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D103261
show more ...
|
| #
753437fc |
| 04-Jun-2021 |
hsmahesha <[email protected]> |
Revert "[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering."
This reverts commit d71ff907ef23eaef86ad66ba2d711e4986cd6cb2.
|
| #
d71ff907 |
| 04-Jun-2021 |
hsmahesha <[email protected]> |
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.
Before packing LDS globals into a sorted structure, make sure that their alignment is properly updated based on their siz
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.
Before packing LDS globals into a sorted structure, make sure that their alignment is properly updated based on their size. This will make sure that the members of sorted structure are properly aligned, and hence it will further reduce the probability of unaligned LDS access.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D103261
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc1 |
|
| #
8de4db69 |
| 19-May-2021 |
Stanislav Mekhanoshin <[email protected]> |
[AMDGPU] Lower kernel LDS into a sorted structure
Differential Revision: https://reviews.llvm.org/D102954
|
| #
49028858 |
| 20-May-2021 |
Stanislav Mekhanoshin <[email protected]> |
[AMDGPU] Request module used variables from LDS lowering as internal
I do not see any practical difference but technically used.* variables are internal and a call to getGlobalVariable misses true a
[AMDGPU] Request module used variables from LDS lowering as internal
I do not see any practical difference but technically used.* variables are internal and a call to getGlobalVariable misses true as a second argument. NFC as far as I can tell.
Differential Revision: https://reviews.llvm.org/D102884
show more ...
|
| #
748db5bf |
| 20-May-2021 |
Stanislav Mekhanoshin <[email protected]> |
[AMDGPU] Fix module LDS selection
Accesses to global module LDS variable start from null, but kernel also thinks its variables start address is null. Fixed by not using a null as an address.
Differ
[AMDGPU] Fix module LDS selection
Accesses to global module LDS variable start from null, but kernel also thinks its variables start address is null. Fixed by not using a null as an address.
Differential Revision: https://reviews.llvm.org/D102882
show more ...
|
| #
82787eb2 |
| 15-Apr-2021 |
hsmahesha <[email protected]> |
[AMDGPU] Move LDS lowering related utility functions to a separate utils file.
Move some utility functions which are used within LDS lowering pass to a separate utils file so that other LDS related
[AMDGPU] Move LDS lowering related utility functions to a separate utils file.
Move some utility functions which are used within LDS lowering pass to a separate utils file so that other LDS related passes can make use of them when required.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D100526
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
13e49dce |
| 15-Mar-2021 |
Jon Chesterfield <[email protected]> |
[amdgpu] Implement lower function LDS pass
[amdgpu] Implement lower function LDS pass
Local variables are allocated at kernel launch. This pass collects global variables that are used from non-kern
[amdgpu] Implement lower function LDS pass
[amdgpu] Implement lower function LDS pass
Local variables are allocated at kernel launch. This pass collects global variables that are used from non-kernel functions, moves them into a new struct type, and allocates an instance of that type in every kernel. Uses are then replaced with a constantexpr offset.
Prior to this pass, accesses from a function are compiled to trap. With this pass, most such accesses are removed before reaching codegen. The trap logic is left unchanged by this pass. It is still reachable for the cases this pass misses, notably the extern shared construct from hip and variables marked constant which survive the optimizer.
This is of interest to the openmp project because the deviceRTL runtime library uses cuda shared variables from functions that cannot be inlined. Trunk llvm therefore cannot compile some openmp kernels for amdgpu. In addition to the unit tests attached, this patch applied to ROCm llvm with fixed-abi enabled and the function pointer hashing scheme deleted passes the openmp suite.
This lowering will use more LDS than strictly necessary. It is intended to be a functionally correct fallback for cases that are difficult to target from future optimisation passes.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D94648
show more ...
|