History log of /llvm-project-15.0.7/polly/lib/CodeGen/PPCGCodeGeneration.cpp (Results 151 – 175 of 213)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# a82c4b5d 13-Sep-2016 Tobias Grosser <[email protected]>

GPGPU: Allow region statements

llvm-svn: 281305


# b79f4d39 13-Sep-2016 Tobias Grosser <[email protected]>

GPGPU: Extend types when array sizes have smaller types

This prevents a compiler crash.

llvm-svn: 281303


# f5aff704 12-Sep-2016 Roman Gareev <[email protected]>

Store the size of the outermost dimension in case of newly created arrays that require memory allocation.

We do not need the size of the outermost dimension in most cases, but if we
allocate memory

Store the size of the outermost dimension in case of newly created arrays that require memory allocation.

We do not need the size of the outermost dimension in most cases, but if we
allocate memory for newly created arrays, that size is needed.

Reviewed-by: Michael Kruse <[email protected]>

Differential Revision: https://reviews.llvm.org/D23991

llvm-svn: 281234

show more ...


# 5857b701 12-Sep-2016 Tobias Grosser <[email protected]>

GPGPU: Bail out gracefully in case of invalid IR

Instead of aborting, we now bail out gracefully in case the kernel IR we
generate is invalid. This can currently happen in case the SCoP stores
point

GPGPU: Bail out gracefully in case of invalid IR

Instead of aborting, we now bail out gracefully in case the kernel IR we
generate is invalid. This can currently happen in case the SCoP stores
pointer values, which we model as arrays, as data values into other arrays. In
this case, the original pointer value is not available on the device and can
consequently not be stored. As detecting this ahead of time is not so easy, we
detect these situations after the invalid IR has been generated and bail out.

llvm-svn: 281193

show more ...


# 02293ed7 11-Sep-2016 Tobias Grosser <[email protected]>

GPGPU: Do not fail in case of arrays never accessed

If these arrays have never been accessed we failed to derive an upper bound
of the accesses and consequently a size for the outermost dimension. W

GPGPU: Do not fail in case of arrays never accessed

If these arrays have never been accessed we failed to derive an upper bound
of the accesses and consequently a size for the outermost dimension. We
now explicitly check for empty access sets and then just use zero as size
for the outermost dimension.

llvm-svn: 281165

show more ...


Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2
# d58acf86 10-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Ensure arrays where only parts are modified are copied to GPU

To do so we change the way array exents are computed. Instead of the precise
set of memory locations accessed, we now compute th

[GPGPU] Ensure arrays where only parts are modified are copied to GPU

To do so we change the way array exents are computed. Instead of the precise
set of memory locations accessed, we now compute the extent as the range between
minimal and maximal address in the first dimension and the full extent defined
by the sizes of the inner array dimensions.

We also move the computation of the may_persist region after the construction
of the arrays, as it relies on array information. Without arrays being
constructed no useful information is computed at all.

llvm-svn: 278212

show more ...


# b06ff457 09-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Support PHI nodes used in GPU kernel

Ensure the right scalar allocations are used as the host location of data
transfers. For the device code, we clear the allocation cache before device
cod

[GPGPU] Support PHI nodes used in GPU kernel

Ensure the right scalar allocations are used as the host location of data
transfers. For the device code, we clear the allocation cache before device
code generation to be able to generate new device-specific allocation and
we need to make sure to add back the old host allocations as soon as the
device code generation is finished.

llvm-svn: 278126

show more ...


# 750160e2 09-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Use separate basic block for GPU initialization code

This increases the readability of the IR and also clarifies that the GPU
inititialization is executed _after_ the scalar initialization w

[GPGPU] Use separate basic block for GPU initialization code

This increases the readability of the IR and also clarifies that the GPU
inititialization is executed _after_ the scalar initialization which needs
to before the code of the transformed scop is executed.

Besides increased readability, the IR should not change. Specifically, I
do not expect any changes in program semantics due to this patch.

llvm-svn: 278125

show more ...


# cf66ef26 09-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Pass parameters always by using their own type

llvm-svn: 278100


# 12453403 08-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Support Values referenced from both isl expr and llvm instructions

When adding code that avoids to pass values used in isl expressions and
LLVM instructions twice, we forgot to make single v

[GPGPU] Support Values referenced from both isl expr and llvm instructions

When adding code that avoids to pass values used in isl expressions and
LLVM instructions twice, we forgot to make single variable passed to the
kernel available in the ValueMap that makes it usable for instructions that
are not replaced with isl ast expressions. This change adds the variable
that is passed to the kernel to the ValueMap to ensure it is available
for such use cases as well.

llvm-svn: 278039

show more ...


# cb1aef8d 08-Aug-2016 Tobias Grosser <[email protected]>

[GPGPU] Create code to verify run-time conditions

llvm-svn: 278026


# 928d7573 05-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Sort dimension sizes of multi-dimensional shared memory arrays correctly

Before this commit we generated the array type in reverse order and we also
added the outermost dimension size to the

GPGPU: Sort dimension sizes of multi-dimensional shared memory arrays correctly

Before this commit we generated the array type in reverse order and we also
added the outermost dimension size to the new array declaration, which is
incorrect as Polly additionally assumed an additional unsized outermost
dimension, such that we had an off-by-one error in the linearization of access
expressions.

llvm-svn: 277802

show more ...


# c1c6a2a6 05-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Add cuda annotations to specify maximal number of threads per block

These annotations ensure that the NVIDIA PTX assembler limits the number of
registers used such that we can be certain the

GPGPU: Add cuda annotations to specify maximal number of threads per block

These annotations ensure that the NVIDIA PTX assembler limits the number of
registers used such that we can be certain the resulting kernel can be executed
for the number of threads in a thread block that we are planning to use.

llvm-svn: 277799

show more ...


# f919d8b3 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Support scalars that are mapped to shared memory

llvm-svn: 277726


# 8950cead 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Disable verbose debug output

llvm-svn: 277724


# b0dd95bc 04-Aug-2016 Tobias Grosser <[email protected]>

Remove leftover debug output

llvm-svn: 277723


# 130ca30f 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Add private memory support

llvm-svn: 277722


# b513b491 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Add support for shared memory

llvm-svn: 277721


# 00bb5a99 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Handle scalar array references

Pass the content of scalar array references to the alloca on the kernel side
and do not pass them additional as normal LLVM scalar value.

llvm-svn: 277699


# 57693272 04-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Pass subtree values correctly to the kernel

llvm-svn: 277697


# 629109b6 03-Aug-2016 Tobias Grosser <[email protected]>

GPGPU: Mark kernel functions as polly.skip

Otherwise, we would try to re-optimize them with Polly-ACC and possibly even
generate kernels that try to offload themselves, which does not work as the
GP

GPGPU: Mark kernel functions as polly.skip

Otherwise, we would try to re-optimize them with Polly-ACC and possibly even
generate kernels that try to offload themselves, which does not work as the
GPURuntime is not available on the accelerator and also does not make any
sense.

llvm-svn: 277589

show more ...


# d7754a12 30-Jul-2016 Roman Gareev <[email protected]>

Extend the jscop interface to allow the user to declare new arrays and to reference these arrays from access expressions

Extend the jscop interface to allow the user to export arrays. It is required

Extend the jscop interface to allow the user to declare new arrays and to reference these arrays from access expressions

Extend the jscop interface to allow the user to export arrays. It is required
that already existing arrays of the list of arrays correspond to arrays
of the SCoP. Each array that is appended to the list will be newly created.
Furthermore, we allow the user to modify access expressions to reference
any array in case it has the same element type.

Reviewed-by: Tobias Grosser <[email protected]>

Differential Revision: https://reviews.llvm.org/D22828

llvm-svn: 277263

show more ...


Revision tags: llvmorg-3.9.0-rc1
# d8b94bca 28-Jul-2016 Tobias Grosser <[email protected]>

GPGPU: Pass context parameters to GPU kernel

llvm-svn: 276963


# a490147c 28-Jul-2016 Tobias Grosser <[email protected]>

GPGPU: Pass host iterators to kernel

llvm-svn: 276962


# 44143bb9 28-Jul-2016 Tobias Grosser <[email protected]>

GPGPU: use current 'Index' to find slot in parameter array

Before this change we used the array index, which would result in us accessing
the parameter array out-of-bounds. This bug was visible for

GPGPU: use current 'Index' to find slot in parameter array

Before this change we used the array index, which would result in us accessing
the parameter array out-of-bounds. This bug was visible for test cases where not
all arrays in a scop are passed to a given kernel.

llvm-svn: 276961

show more ...


123456789