isl_schedule_constraints_compute_schedule: allow partial carrying schedule rows
commit1aefe3eb7fe0b30d0ce37a879379fa95469a1bc3
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 7 Oct 2014 21:22:52 +0000 (7 23:22 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 7 Oct 2014 21:32:22 +0000 (7 23:32 +0200)
tree6519f99d48a2a7258de2b83499e488605ce6ce67
parent96a743cb500b63d18b94c567840e5620cd6b46b5
isl_schedule_constraints_compute_schedule: allow partial carrying schedule rows

When we resort to carrying dependence (or when the user has specifically
requested the use of the Feautrier scheduler), we would hope to obtain
a schedule row that is non-trivial on all the full-dimensional iteration
domains.  However, in certain cases this may not be possible.
This may especially happen after schedule domain compression since
that may cause some iteration domains to have lower dimension.

Accept anything the Feautrier scheduler returns, as long as at least
some dependences are carried.  This may result in a final schedule
with a higher dimension that expected, but it should be better than
simply refusing to produce a schedule.  Since we are still carrying
at least one basic map of dependences, termination is still guaranteed.

Reported-by: antoine.morvan.pro@gmail.com
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_scheduler.c
isl_test.c