| #
61bd3a48 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Move Scop::getPwAffOnly to isl++ [NFC]
llvm-svn: 310231
|
| #
31df6f31 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Move Scop::getDomains to isl++ [NFC]
llvm-svn: 310230
|
| #
b65ccc43 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Translate Scop::getParamSpace to isl++ [NFC]
llvm-svn: 310224
|
| #
8ea1fc19 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Translate Scop::getContext to isl++ [NFC]
llvm-svn: 310221
|
| #
9a63570b |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Translate Scop::getIdForParam to isl++ [NFC]
llvm-svn: 310220
|
| #
5ab39ff2 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[ScopInfo] Move get*Writes/getReads/getAccesses to isl++
llvm-svn: 310219
|
| #
dcf8d696 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
Move ScopInfo::getDomain(), getDomainSpace(), getDomainId() to isl++
llvm-svn: 310209
|
| #
b99c1171 |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[GPGPU] Make sure managed arrays are prepared at the beginning of the scop
Summary: This resolves some "instruction does not dominate use" errors, as we used to prepare the arrays at the location of
[GPGPU] Make sure managed arrays are prepared at the beginning of the scop
Summary: This resolves some "instruction does not dominate use" errors, as we used to prepare the arrays at the location of the first kernel, which not necessarily dominated all other kernel calls.
Reviewers: Meinersbur, bollu, singam-sanjay
Subscribers: nemanjai, pollydev, llvm-commits, kbarton
Differential Revision: https://reviews.llvm.org/D36372
llvm-svn: 310196
show more ...
|
| #
5b307cdb |
| 06-Aug-2017 |
Tobias Grosser <[email protected]> |
[GPGPU] Rename all, not only the first libdevice function
llvm-svn: 310194
|
| #
e53c924b |
| 06-Aug-2017 |
Siddharth Bhat <[email protected]> |
[Polly] [PPCGCodeGeneration] Deal with loops outside the Scop correctly in PPCGCodeGeneration.
A Scop with a loop outside it is not handled currently by PPCGCodeGeneration. The test case is such tha
[Polly] [PPCGCodeGeneration] Deal with loops outside the Scop correctly in PPCGCodeGeneration.
A Scop with a loop outside it is not handled currently by PPCGCodeGeneration. The test case is such that the Scop has only one inner loop that is detected. This currently breaks codegen.
The fix is to reuse the existing mechanism in `IslNodeBuilder` within `GPUNodeBuilder.
Differential Revision: https://reviews.llvm.org/D36290
llvm-svn: 310193
show more ...
|
| #
638316da |
| 04-Aug-2017 |
Siddharth Bhat <[email protected]> |
[PPCGCodeGeneration] [NFC] Log every location from which PPCGCodegen bails.
This is useful when trying to understand why no GPU code was produced.
Differential Revision: https://reviews.llvm.org/D3
[PPCGCodeGeneration] [NFC] Log every location from which PPCGCodegen bails.
This is useful when trying to understand why no GPU code was produced.
Differential Revision: https://reviews.llvm.org/D36318
llvm-svn: 310103
show more ...
|
| #
b5563c68 |
| 03-Aug-2017 |
Tobias Grosser <[email protected]> |
Make sure that all parameter dimensions are set in schedule
Summary: In case the option -polly-ignore-parameter-bounds is set, not all parameters will be added to context and domains. This is useful
Make sure that all parameter dimensions are set in schedule
Summary: In case the option -polly-ignore-parameter-bounds is set, not all parameters will be added to context and domains. This is useful to keep the size of the sets and maps we work with small. Unfortunately, for AST generation it is necessary to ensure all parameters are part of the schedule tree. Hence, we modify the GPGPU code generation to make sure this is the case.
To obtain the necessary information we expose a new function Scop::getFullParamSpace(). We also make a couple of functions const to be able to make SCoP::getFullParamSpace() const.
Reviewers: Meinersbur, bollu, gareevroman, efriedma, huihuiz, sebpop, simbuerg
Subscribers: nemanjai, kbarton, pollydev, llvm-commits
Tags: #polly
Differential Revision: https://reviews.llvm.org/D36243
llvm-svn: 309939
show more ...
|
| #
eadf76d3 |
| 03-Aug-2017 |
Siddharth Bhat <[email protected]> |
[PPCGCodeGeneration] Construct `isl_multi_pw_aff` of PPCGArray.bounds even when polly-ignore-parameter-bounds is turned on.
When we have `-polly-ignore-parameter-bounds`, `Scop::Context` does not co
[PPCGCodeGeneration] Construct `isl_multi_pw_aff` of PPCGArray.bounds even when polly-ignore-parameter-bounds is turned on.
When we have `-polly-ignore-parameter-bounds`, `Scop::Context` does not contain all the paramters present in the program.
The construction of the `isl_multi_pw_aff` requires all the indivisual `pw_aff` to have the same parameter dimensions. To achieve this, we used to realign every `pw_aff` with `Scop::Context`. However, in conjunction with `-polly-ignore-parameter-bounds`, this is now incorrect, since `Scop::Context` does not contain all parameters.
We set this up correctly by creating a space that has all the parameters used by all the `isl_pw_aff`. Then, we realign all `isl_pw_aff` to this space.
llvm-svn: 309934
show more ...
|
| #
edf9581e |
| 01-Aug-2017 |
Siddharth Bhat <[email protected]> |
[PPCGCodeGeneration] Correct usage of llvm::Value with getLatestValue.
It is possible that the `HostPtr` that coresponds to an array could be invariant load hoisted. Make sure we use the invariant l
[PPCGCodeGeneration] Correct usage of llvm::Value with getLatestValue.
It is possible that the `HostPtr` that coresponds to an array could be invariant load hoisted. Make sure we use the invariant load hoisted value by using `IslNodeBuilder::getLatestValue`.
Differential Revision: https://reviews.llvm.org/D36001
llvm-svn: 309681
show more ...
|
| #
4d5820d1 |
| 01-Aug-2017 |
Siddharth Bhat <[email protected]> |
[NFC] [PPCGCodeGeneration] Convert GPUNodeBuilder::getGridSizes to isl++.
llvm-svn: 309671
|
| #
ccbf4b50 |
| 01-Aug-2017 |
Siddharth Bhat <[email protected]> |
[NFC] [PPCGCodeGeneration] Convert GPUNodeBuilder::getArrayOffset to isl++.
llvm-svn: 309669
|
| #
8fc6cdfb |
| 31-Jul-2017 |
Tobias Grosser <[email protected]> |
[GPGPU] Add support for NVIDIA libdevice
Summary: This allows us to map functions such as exp, expf, expl, for which no LLVM intrinsics exist. Instead, we link to NVIDIA's libdevice which provides h
[GPGPU] Add support for NVIDIA libdevice
Summary: This allows us to map functions such as exp, expf, expl, for which no LLVM intrinsics exist. Instead, we link to NVIDIA's libdevice which provides high-performance implementations of a wide range of (math) functions. We currently link only a small subset, the exp, cos and copysign functions. Other functions will be enabled as needed.
Reviewers: bollu, singam-sanjay
Reviewed By: bollu
Subscribers: tstellar, tra, nemanjai, pollydev, mgorny, llvm-commits, kbarton
Tags: #polly
Differential Revision: https://reviews.llvm.org/D35703
llvm-svn: 309560
show more ...
|
| #
4ebeb356 |
| 28-Jul-2017 |
Siddharth Bhat <[email protected]> |
[PPCGCodeGeneration] Check that invariant load hoisting succeeded.
If we fail, throw an error for now. We can gracefully handle this later.
llvm-svn: 309387
|
| #
25271b91 |
| 28-Jul-2017 |
Tobias Grosser <[email protected]> |
[GPGPU] Do not require the Scop::Context to have information about all parameters
llvm-svn: 309368
|
| #
30caae6d |
| 28-Jul-2017 |
Tobias Grosser <[email protected]> |
[GPGPU] Fix compilation issue with latest CUDA upgrade to i128
llvm-svn: 309366
|
|
Revision tags: llvmorg-5.0.0-rc1 |
|
| #
43f178bb |
| 25-Jul-2017 |
Siddharth Bhat <[email protected]> |
[PPCGCodeGeneration] Skip arrays with empty extent.
Invariant load hoisted scalars, and arrays whose size we can statically compute to be 0 do not need to be allocated as arrays.
Invariant load hoi
[PPCGCodeGeneration] Skip arrays with empty extent.
Invariant load hoisted scalars, and arrays whose size we can statically compute to be 0 do not need to be allocated as arrays.
Invariant load hoisted scalars are sent to the kernel directly as parameters.
Earlier, we used to allocate `0` bytes of memory for these because our computation of size from `PPCGCodeGeneration::getArraySize` would result in `0`.
Now, since we don't invariant loads as arrays in PPCGCodeGeneration, this problem does not occur anymore.
Differential Revision: https://reviews.llvm.org/D35795
llvm-svn: 308971
show more ...
|
| #
206e9e3b |
| 24-Jul-2017 |
Tobias Grosser <[email protected]> |
Move ScopArrayInfo::getFromAccessFunction and getFromId to isl++
llvm-svn: 308892
|
| #
f7face4b |
| 24-Jul-2017 |
Siddharth Bhat <[email protected]> |
Convert GPUNodeBuilder::getArraySize to islcpp.
Note: PPCGCodeGeneration::pollyBuildAstExprForStmt is at https://reviews.llvm.org/D35770
Differential Revision: https://reviews.llvm.org/D35771
Convert GPUNodeBuilder::getArraySize to islcpp.
Note: PPCGCodeGeneration::pollyBuildAstExprForStmt is at https://reviews.llvm.org/D35770
Differential Revision: https://reviews.llvm.org/D35771
llvm-svn: 308870
show more ...
|
| #
35de9009 |
| 24-Jul-2017 |
Siddharth Bhat <[email protected]> |
[NFC] Move PPCGCodeGeneration::pollyBuildAstExprForStmt to isl++.
Differential Revision: https://reviews.llvm.org/D35771
llvm-svn: 308869
|
| #
6a87036e |
| 23-Jul-2017 |
Tobias Grosser <[email protected]> |
Move MemoryAccess::getAddressFunction to isl++
llvm-svn: 308841
|