isl_schedule_constraints_compute_schedule: do not merge over empty constraints
commitbf153f2712fe4694ec3ea9468c5738028c70eb38
authorSven Verdoolaege <skimo@kotnet.org>
Wed, 19 Apr 2017 08:24:53 +0000 (19 10:24 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Wed, 17 May 2017 08:15:52 +0000 (17 10:15 +0200)
tree538952bd97b539142b6ce2f08e0b2dd95ad40ff9
parentab04bbe57dffd1dfe120aea63485bc70c70d7c31
isl_schedule_constraints_compute_schedule: do not merge over empty constraints

The incremental scheduler introduced in e3e81206bc
(isl_schedule_constraints_compute_schedule: allow incremental combination
of SCCs, Tue Apr 14 09:59:19 2015 +0200) combines clusters that
are linked by a collection of proximity schedule constraints.
If the clustering occurs at an inner level, then some of
the schedule constraints may already have been carried
by outer bands.  In particular, an entire edge with
proximity schedule constraints may have been carried by outer bands,
resulting in an edge with an empty dependence relation.
Such empty edges are removed from the hash tables, but not from
the dependence graph itself.

Since the distances over such an empty collection of proximity
constraints form an empty set, they satisfy any property and
such edges are therefore mistakenly taken to be completely optimized.
Ignore empty proximity edges because it is impossible to evaluate
the usefulness of merging over such edges.

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