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()
3780 static isl_stat perform_undo_var(struct isl_tab *tab, struct isl_tab_undo *undo)
3782 static isl_stat perform_undo_var(struct isl_tab *tab, struct isl_tab_undo *undo) in perform_undo_var() argument
3784 struct isl_tab_var *var = var_from_index(tab, undo->u.var_index); in perform_undo_var()
3785 switch (undo->type) { in perform_undo_var()
3804 if (undo->u.var_index >= 0) { in perform_undo_var()
3966 static isl_stat perform_undo(struct isl_tab *tab, struct isl_tab_undo *undo)
3968 static isl_stat perform_undo(struct isl_tab *tab, struct isl_tab_undo *undo) in perform_undo() argument
3970 switch (undo->type) { in perform_undo()
3984 return perform_undo_var(tab, undo); in perform_undo()
3992 return drop_bmap_div(tab, undo->u.var_index); in perform_undo()
3994 if (restore_basis(tab, undo->u.col_var) < 0) in perform_undo()
4001 drop_samples_since(tab, undo->u.n); in perform_undo()
4004 return undo->u.callback->run(undo->u.callback); in perform_undo()
4016 struct isl_tab_undo *undo, *next; in isl_tab_rollback() local
4022 for (undo = tab->top; undo && undo != &tab->bottom; undo = next) { in isl_tab_rollback()
4023 next = undo->next; in isl_tab_rollback()
4024 if (undo == snap) in isl_tab_rollback()
4026 if (perform_undo(tab, undo) < 0) { in isl_tab_rollback()
4027 tab->top = undo; in isl_tab_rollback()
4032 free_undo_record(undo); in isl_tab_rollback()
4035 tab->top = undo; in isl_tab_rollback()
4036 if (!undo) in isl_tab_rollback()