From 79d277b08490900bd698114586a63160a3da5d01 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 25 Sep 2009 19:17:20 +0200 Subject: isl_tab_basic_map_partial_lexopt: remove samples that are no longer useful When we test an inequality in row_sign, it is useful to store any samples found, so we can use them to speed up the computation of future row signs. However, when we return from a branch, then all the samples found since we entered the branch all satisfy the constraints on that branch and so they will not satisfy the constraints on any other branch. We therefore save the current number of samples when we enter a branch and then discard all subsequently added samples when we return from the branch. --- isl_tab_pip.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'isl_tab_pip.c') diff --git a/isl_tab_pip.c b/isl_tab_pip.c index e88985d0..5886fd7e 100644 --- a/isl_tab_pip.c +++ b/isl_tab_pip.c @@ -1973,6 +1973,7 @@ static struct isl_sol *find_in_pos(struct isl_sol *sol, snap = isl_tab_snap(sol->context_tab); isl_tab_push_basis(sol->context_tab); + isl_tab_save_samples(sol->context_tab); if (isl_tab_extend_cons(sol->context_tab, 1) < 0) goto error; @@ -2004,6 +2005,7 @@ static struct isl_sol *no_sol_in_strict(struct isl_sol *sol, struct isl_tab_undo *snap; snap = isl_tab_snap(sol->context_tab); isl_tab_push_basis(sol->context_tab); + isl_tab_save_samples(sol->context_tab); if (isl_tab_extend_cons(sol->context_tab, 1) < 0) goto error; -- cgit v1.2.3