gpu: mark all ancestor nodes of kernels as atomic
commitbeeae238996cea14526c7fd75927851922f5df5a
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 8 Oct 2013 08:39:17 +0000 (8 10:39 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 16 Mar 2015 13:35:00 +0000 (16 14:35 +0100)
tree4518cbc608171b2f0bbf6a95f91de54883675833
parent810a7957e79745efa108f99ae922f2340337088a
gpu: mark all ancestor nodes of kernels as atomic

In the future, we will be creating kernel objects before any
AST generation has been performed.  This means that during
the analysis of the kernel we cannot take into account any
possible separation on the outer dimensions.  Mark those outer
dimensions as atomic such that exactly one kernel launch is
created for each node in the AST tree that is tagged as a kernel.
This ensures that both phases have a consistent view of the kernels.
Note that we only require the kernel statements to be considered
atomic, but currently the only way to do so is to mark the band
atomic.
If we want to allow separation of the outer dimensions in the future,
then we may want to consider performing this separation directly
on the schedule tree, so that we can perform the separation
before the kernels are created.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
gpu.c