cloog_scattering_lazy_block: check whether entire schedule is injective
commit0a76f6e6c84bee720d56246a91dfb63a4b918e51
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 5 May 2011 12:29:24 +0000 (5 14:29 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 7 May 2011 19:44:24 +0000 (7 21:44 +0200)
tree4976115d6035b8a1c0df08daad4a0edd22b05a8c
parentb453bd623fd4ec26b446c7a192a66e8481b73655
cloog_scattering_lazy_block: check whether entire schedule is injective

The current implementation assumes that if the iterations of two domains
are scheduled immediately after each other that they can be grouped
into a single block.  This assumes, however, that no other iterations
(from the same domains or from different domains) are also mapped to
those iterations.  That is, the schedule should be injective.

Since testing whether a schedule is injective can be fairly expensive,
we only check whether it is obviously injective.  This results in
some fallout as blocking is now disabled on a couple of test cases
where the schedule is not obviously injective.

The check for an obviously injective schedule may be performed
multiple times in the new code.  It would probably be cheaper
to perform the test only once, but that would require a change
in the interface between the core of CLooG and its backends.

Reported-by: christian <ctenllado@gmail.com>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl
source/isl/domain.c
test/Makefile.am
test/block3.c [new file with mode: 0644]
test/block3.cloog [new file with mode: 0644]
test/block3.good.c [new file with mode: 0644]
test/christian.c [new file with mode: 0644]
test/christian.cloog [new file with mode: 0644]
test/christian.good.c [new file with mode: 0644]
test/orc.c
test/reservoir/mg-interp.c