X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_tab.h;h=786e6fde9c85d4d015d420ae881664ba5679472a;hb=9819286048d19176b7e0d46a664ff80cf0ff679c;hp=688804400bcbc40b21255f045990bab813ca5c71;hpb=fe8f991cf09ecb1aed45cd2599f23a490ac46501;p=platform%2Fupstream%2Fisl.git diff --git a/isl_tab.h b/isl_tab.h index 6888044..786e6fd 100644 --- a/isl_tab.h +++ b/isl_tab.h @@ -118,6 +118,9 @@ struct isl_tab_undo { * can be reinstated during rollback when the constraint that cut them * out is removed. These samples are only maintained for the context * tableau while solving PILP problems. + * + * If "preserve" is set, then we want to keep all constraints in the + * tableau, even if they turn out to be redundant. */ enum isl_tab_row_sign { isl_tab_row_unknown = 0, @@ -166,6 +169,7 @@ struct isl_tab { unsigned strict_redundant : 1; unsigned need_undo : 1; + unsigned preserve : 1; unsigned rational : 1; unsigned empty : 1; unsigned in_undo : 1; @@ -177,8 +181,10 @@ struct isl_tab *isl_tab_alloc(struct isl_ctx *ctx, unsigned n_row, unsigned n_var, unsigned M); void isl_tab_free(struct isl_tab *tab); -struct isl_tab *isl_tab_from_basic_map(struct isl_basic_map *bmap); -struct isl_tab *isl_tab_from_basic_set(struct isl_basic_set *bset); +__isl_give struct isl_tab *isl_tab_from_basic_map( + __isl_keep isl_basic_map *bmap, int track); +__isl_give struct isl_tab *isl_tab_from_basic_set( + __isl_keep isl_basic_set *bset, int track); struct isl_tab *isl_tab_from_recession_cone(struct isl_basic_set *bset, int parametric); int isl_tab_cone_is_bounded(struct isl_tab *tab); @@ -232,6 +238,9 @@ void isl_tab_dump(__isl_keep struct isl_tab *tab); struct isl_map *isl_tab_basic_map_partial_lexopt( struct isl_basic_map *bmap, struct isl_basic_set *dom, struct isl_set **empty, int max); +__isl_give isl_pw_multi_aff *isl_basic_map_partial_lexopt_pw_multi_aff( + __isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, + __isl_give isl_set **empty, int max); /* An isl_region represents a sequence of consecutive variables. * pos is the location (starting at 0) of the first variable in the sequence.