History log of /llvm-project-15.0.7/polly/lib/CodeGen/PPCGCodeGeneration.cpp (Results 76 – 100 of 213)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


123456789