isl_map_coalesce: check for protrusions on adjacent equality
commit358e8d99ef25019c57335b0f1e7b52d8589f7c49
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 31 May 2016 07:45:12 +0000 (31 09:45 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 10 Jun 2016 16:42:15 +0000 (10 18:42 +0200)
tree51155ba92b4ffa2106485f6ea6e0735c796e2cf1
parent3d57c661dcc84b57f5623c5acb5774684c3019ad
isl_map_coalesce: check for protrusions on adjacent equality

The set { [x, -x] : 0 <= x <= 1 } has an equality that is adjacent
to an inequality of { [1, y] : 0 <= y <= 1 }, but that inequality
is not considered to be adjacent to an equality of the first set.
coalesce_local_pair_reuse decides to check for the pattern of
adjacent equality and inequality based on the equality, but
the checks in check_adj_eq fail, so no coalescing is performed.
However, some other patterns may still apply.  In particular,
the set with the equality may still be a protrusion out of
the other set, as in this example.
Check for this pattern in check_adj_eq when no corresponding
inequality can be found.

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