isl_coalesce.c: fuse: simplify fused result immediately
commit1f737b42f6ee7461c88b90d8cbdbdbaf17a6b34a
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 11 Jun 2016 09:30:43 +0000 (11 11:30 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 11 Jun 2016 09:44:00 +0000 (11 11:44 +0200)
tree8ca6e0a500bdcc29da3125eb0dbab4dc5c488f65
parent03a5651ea0895ffdae301fb8a1a1de1f13c127f2
isl_coalesce.c: fuse: simplify fused result immediately

181c998 (isl_coalesce.c: fuse: allow basic maps to have different
integer divisions, Sat Oct 11 11:08:17 2014 +0200) allowed fusion
of basic maps with different integer divisions and scheduled such
results to be simplified in the end in an attempt to recover
an integer division definition.  However, this means that
the result of the simplification cannot be used during subsequent
coalescing steps.  Since the tableau is recomputed anyway,
there is no harm in performing the simplification immediately.
In contrived cases, this can result in the discovery and removal
of redundant integer divisions as in the new test case.

Note that the mechanism for delayed simplification is kept since
it is also used by the code introduced in 2f82f48 (isl_coalesce.c:
is_adj_eq_extension: allow basic maps to have different divs,
Sat Oct 11 21:20:43 2014 +0200).  In this case, the tableau
is not being recomputed, such that a simplification would break
the connection between the constraint and the tableau representation.

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