keep track of effect of variable elimination on implicit equality constraints
commit998e1fa21d8120b6f3ed9a732f5e8d1b06d1adcf
authorSven Verdoolaege <sven@cerebras.net>
Thu, 18 Nov 2021 11:11:51 +0000 (18 12:11 +0100)
committerSven Verdoolaege <sven@cerebras.net>
Sat, 10 Feb 2024 15:01:38 +0000 (10 16:01 +0100)
tree584506213946436344d23f5d2c298cb23eec6dd6
parentda7dbe50e60c48b60ccec1b9914351285ce6930a
keep track of effect of variable elimination on implicit equality constraints

Any manipulation that may make a constraint redundant
may also turn it into an implicit equality.
In particular, when a constraint gets scaled down
a sample value in the tableau that could originally
reach the next integer value could potentially no longer
reach this next integer value after the scaling.

The chances of this having any user visible effect are very small.
When the ISL_BASIC_MAP_NO_REDUNDANT flag is cleared, any later
call to isl_basic_map_remove_redundancies will already
look for implicit equality constraints as well,
independently of the ISL_BASIC_MAP_NO_IMPLICIT flag.

There are a couple of places that explicitly check
the ISL_BASIC_MAP_NO_IMPLICIT flag, but this is either only an optimization
or only in effect on rational sets.

Note that there are some situations where
the elimination is known not to have an effect
on redundant constraints or implicit equality constraints.
These will be considered in an upcoming commit.

Signed-off-by: Sven Verdoolaege <sven@cerebras.net>
isl_map_simplify.c