scheduling: optionally split parallel rows in non-tilable bands
commitf4d7d23a8bcdbe5bc0eddbbf5bbcfa8669333dc5
authorSven Verdoolaege <skimo@kotnet.org>
Fri, 3 Jun 2011 08:39:19 +0000 (3 10:39 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sun, 5 Jun 2011 08:55:22 +0000 (5 10:55 +0200)
tree6b25017f56b9f652d90d899e8511bbb4bc44e27d
parente3bf06f2245db9624608e1aa6382c66cd3b752c9
scheduling: optionally split parallel rows in non-tilable bands

If a scheduling row that is constructed to carry dependences
is of the form, say, { S1[..] -> [2 * g(..)]; S2[..] -> [2 * g(..) + 1] },
then it is usually better to split off the constant term into a separate
band and obtain { S1[..] -> [g(..),0]; S2[..] -> [g(..),1] } instead.
In particular, the code generated from the second schedule is usually
simpler than that from the first schedule.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
include/isl/options.h
isl_options.c
isl_schedule.c