GPGPU: compute new schedule from polly scop
authorTobias Grosser <tobias@grosser.es>
Thu, 14 Jul 2016 10:22:25 +0000 (10:22 +0000)
committerTobias Grosser <tobias@grosser.es>
Thu, 14 Jul 2016 10:22:25 +0000 (10:22 +0000)
commitf384594d5e4960635434a38bcfd495840eff9c7e
treead876a0cea64b0a3b83634190e44fde3858bc153
parente938517e379160d3033557af5c6fcf8a89a4910f
GPGPU: compute new schedule from polly scop

To do so we copy the necessary information to compute an initial schedule from
polly::Scop to ppcg's scop. Most of the necessary information is directly
available and only needs to be passed on to ppcg, with the exception of 'tagged'
access relations, access relations that additionally carry information about
which memory access an access relation originates from.

We could possibly perform the construction of tagged accesses as part of
ScopInfo, but as this format is currently specific to ppcg we do not do this
yet, but keep this functionality local to our GPU code generation.

After the scop has been initialized, we compute data dependences and ask ppcg to
compute an initial schedule. Some of this functionality is already available in
polly::DependenceInfo and polly::ScheduleOptimizer, but to keep differences
to ppcg small we use ppcg's functionality here. We may later investiage if
a closer integration of these tools makes sense.

llvm-svn: 275390
polly/lib/CodeGen/PPCGCodeGeneration.cpp
polly/lib/External/ppcg/gpu.c
polly/lib/External/ppcg/gpu.h
polly/lib/External/ppcg/ppcg.c
polly/lib/External/ppcg/ppcg.h
polly/test/GPGPU/double-parallel-loop.ll