isl_tab_rollback: restore rows that are no longer marked redundant
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 22 Apr 2010 11:07:22 +0000 (13:07 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 23 Apr 2010 10:02:54 +0000 (12:02 +0200)
When a row is marked redundant, it may have a negative (but strictly
larger than -1) sample value.  When undoing this marking, we need
to make sure the sample value is restored to a non-negative value.

isl_tab.c

index 8acd40a..7dccea8 100644 (file)
--- a/isl_tab.c
+++ b/isl_tab.c
@@ -2828,6 +2828,7 @@ static int perform_undo_var(struct isl_tab *tab, struct isl_tab_undo *undo)
        case isl_tab_undo_redundant:
                var->is_redundant = 0;
                tab->n_redundant--;
+               restore_row(tab, isl_tab_var_from_row(tab, tab->n_redundant));
                break;
        case isl_tab_undo_freeze:
                var->frozen = 0;