scheduler: drop constraints that can only be used for coalescing
commitf936fb0ca525e732ce36a85d47e687f49c783588
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 23 Feb 2017 13:22:27 +0000 (23 14:22 +0100)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Wed, 7 Jun 2017 12:16:01 +0000 (7 14:16 +0200)
tree258594c41a6585ef56571b0715bb8580fea29357
parent8cc6ddd9a6bb3451c6bf745c601aa6b082c31dfe
scheduler: drop constraints that can only be used for coalescing

In some scheduler inputs, there are validity schedule constraints
between two consecutive values for a given coordinate and
this for all values of the other coordinates.
The difference set will then have bounds that correspond
to the sizes in those other directions, assuming the instance set
is rectangular with fixed upper bounds.
These constraints can only be exploited to construct loop coalescing
schedules.  While measures have been put in place to prevent or
recover from loop coalescing, there is little point in considering
such constraints in the first place.
Dropping such constraints can improve efficiency, especially
in the case of the Feautrier style scheduler where
coalescing is initially allowed and subsequently removed
by modifying the LP problem.
Dropping those constraints will prevent the coalescing
from happening in the first place.

This commit only removes the constraints described above,
which can clearly only be used for coalescing.
It does not remove all constraints that could potentially
be used for coalescing.  The general coalescing preventing/repairing
measures are therefore still needed.

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