isl_ast_build_node_from_schedule: avoid spurious splits into disjuncts by filters
isl_ast_build_node_from_schedule: avoid spurious splits into disjuncts by filters

In some cases, filters are only used to select which of several options
applies at the current state of the AST generation.  This happens
in particular when the user applies isolation and then wants the isolated
part and the remaining part to be treated differently in the subtree
of the node to which isolation is applied.
The remaining part is then typically the result of a subtraction and
may consist of several disjuncts.  The "executed" relation will then
typically also consist of several disjuncts, but the subdivision may
be a different one from the one in the filter.  An intersection then
results in a common refinement, with possibly many more disjuncts.

After intersecting with the filter, check if the "execution" relation
has changed and stick with the original representation if it has not changed.

Signed-off-by: Sven Verdoolaege <e5350bbed4977f5eb8ae1dc6abd9ae59d21ace75@kotnet.org>
Signed-off-by: Chet Kener <4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com>

UBERTC/isl,UBERTC/isl,UBERTC/isl,UBERTC/isl