Lines Matching refs:undo
182 static void free_undo_record(struct isl_tab_undo *undo) in free_undo_record() argument
184 switch (undo->type) { in free_undo_record()
186 free(undo->u.col_var); in free_undo_record()
190 free(undo); in free_undo_record()
195 struct isl_tab_undo *undo, *next; in free_undo() local
197 for (undo = tab->top; undo && undo != &tab->bottom; undo = next) { in free_undo()
198 next = undo->next; in free_undo()
199 free_undo_record(undo); in free_undo()
201 tab->top = undo; in free_undo()
802 struct isl_tab_undo *undo; in push_union() local
809 undo = isl_alloc_type(tab->mat->ctx, struct isl_tab_undo); in push_union()
810 if (!undo) in push_union()
812 undo->type = type; in push_union()
813 undo->u = u; in push_union()
814 undo->next = tab->top; in push_union()
815 tab->top = undo; in push_union()
3791 static isl_stat perform_undo_var(struct isl_tab *tab, struct isl_tab_undo *undo)
3793 static isl_stat perform_undo_var(struct isl_tab *tab, struct isl_tab_undo *undo) in perform_undo_var() argument
3795 struct isl_tab_var *var = var_from_index(tab, undo->u.var_index); in perform_undo_var()
3796 switch (undo->type) { in perform_undo_var()
3815 if (undo->u.var_index >= 0) { in perform_undo_var()
3976 static isl_stat perform_undo(struct isl_tab *tab, struct isl_tab_undo *undo)
3978 static isl_stat perform_undo(struct isl_tab *tab, struct isl_tab_undo *undo) in perform_undo() argument
3980 switch (undo->type) { in perform_undo()
3994 return perform_undo_var(tab, undo); in perform_undo()
4002 return drop_bmap_div(tab, undo->u.var_index); in perform_undo()
4004 if (restore_basis(tab, undo->u.col_var) < 0) in perform_undo()
4011 drop_samples_since(tab, undo->u.n); in perform_undo()
4014 return undo->u.callback->run(undo->u.callback); in perform_undo()
4026 struct isl_tab_undo *undo, *next; in isl_tab_rollback() local
4032 for (undo = tab->top; undo && undo != &tab->bottom; undo = next) { in isl_tab_rollback()
4033 next = undo->next; in isl_tab_rollback()
4034 if (undo == snap) in isl_tab_rollback()
4036 if (perform_undo(tab, undo) < 0) { in isl_tab_rollback()
4037 tab->top = undo; in isl_tab_rollback()
4042 free_undo_record(undo); in isl_tab_rollback()
4045 tab->top = undo; in isl_tab_rollback()
4046 if (!undo) in isl_tab_rollback()