isl_scheduler.c: split_scaled: do not enforce relative shifts
The Feautrier scheduler is designed to carry as many edges
as possible, but this is not strictly necessary when used
as a fallback for the Pluto-like scheduler.
In particular, if it is possible to construct a valid schedule
that results in several strongly connected components
at the next level, then the Feautrier scheduler will
scale the schedule by the number of components and
assign each component a different offset in order to also carry
the edges between the components.
split_scaled tries to detect simple cases of such scaled schedules
and scales them down. The different offsets would then be used
to create a sequence node that orders the components.
This ensures that the combination of scaled down band node
and schedule node expresses the same ordering as the original
scaled band node, but has the advantage that the coefficients
are smaller.
However, enforcing the exact same order is not required.
The scaled down band node in itself is sufficient and there
is no need to enforce the ordering of the components.
Drop the introduction of the sequence node such that
the scheduler is free to combine components at the next level.
For example, in PolyBench's doitgen, the fixed ordering
of the components would force a loop distribution that
is both not necessary and not desired.
Without the fixed ordering, the scheduler is free
to combine the components and effectively prevent
the loop distribution.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>