X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2Fuser.pod;h=6ab350708f2ce5dc79dc4918819f28ca47bd4d72;hb=10cb2990800fb4ab281613915395366b1d0960c4;hp=42d9c43d3cc3a1d955ccf7762f8f8e00fa51a5b4;hpb=d79b8dcaf8706d496e97090f6c3cca0197a0777f;p=platform%2Fupstream%2Fisl.git diff --git a/doc/user.pod b/doc/user.pod index 42d9c43..6ab3507 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -2335,6 +2335,11 @@ per space. __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n); + __isl_give isl_basic_map * + isl_basic_map_drop_constraints_involving_dims( + __isl_take isl_basic_map *bmap, + enum isl_dim_type type, + unsigned first, unsigned n); __isl_give isl_basic_set * isl_basic_set_drop_constraints_not_involving_dims( __isl_take isl_basic_set *bset, @@ -3061,6 +3066,10 @@ returning a basic set or relation. __isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty); + __isl_give isl_pw_multi_aff *isl_set_lexmin_pw_multi_aff( + __isl_take isl_set *set); + __isl_give isl_pw_multi_aff *isl_set_lexmax_pw_multi_aff( + __isl_take isl_set *set); __isl_give isl_pw_multi_aff *isl_map_lexmin_pw_multi_aff( __isl_take isl_map *map); __isl_give isl_pw_multi_aff *isl_map_lexmax_pw_multi_aff( @@ -3096,6 +3105,11 @@ Lists can be created, copied, modified and freed using the following functions. __isl_give isl_set_list *isl_set_list_concat( __isl_take isl_set_list *list1, __isl_take isl_set_list *list2); + __isl_give isl_set_list *isl_set_list_sort( + __isl_take isl_set_list *list, + int (*cmp)(__isl_keep isl_set *a, + __isl_keep isl_set *b, void *user), + void *user); void *isl_set_list_free(__isl_take isl_set_list *list); C creates an empty list with a capacity for @@ -3884,15 +3898,44 @@ Operations include __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add( __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2); + __isl_give isl_multi_aff *isl_multi_aff_sub( + __isl_take isl_multi_aff *ma1, + __isl_take isl_multi_aff *ma2); + __isl_give isl_pw_multi_aff *isl_pw_multi_aff_sub( + __isl_take isl_pw_multi_aff *pma1, + __isl_take isl_pw_multi_aff *pma2); + __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub( + __isl_take isl_union_pw_multi_aff *upma1, + __isl_take isl_union_pw_multi_aff *upma2); + +C subtracts the second argument from the first. + __isl_give isl_multi_aff *isl_multi_aff_scale( __isl_take isl_multi_aff *maff, isl_int f); + __isl_give isl_multi_aff *isl_multi_aff_scale_vec( + __isl_take isl_multi_aff *ma, + __isl_take isl_vec *v); + __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_vec( + __isl_take isl_pw_multi_aff *pma, + __isl_take isl_vec *v); + __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_vec( + __isl_take isl_union_pw_multi_aff *upma, + __isl_take isl_vec *v); + +C scales the first elements of C +by the corresponding elements of C. + __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params( __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set); __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain( __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set); + __isl_give isl_union_pw_multi_aff * + isl_union_pw_multi_aff_intersect_domain( + __isl_take isl_union_pw_multi_aff *upma, + __isl_take isl_union_set *uset); __isl_give isl_multi_aff *isl_multi_aff_lift( __isl_take isl_multi_aff *maff, __isl_give isl_local_space **ls); @@ -5086,6 +5129,9 @@ A band can be tiled using the following function. int isl_options_set_tile_scale_tile_loops(isl_ctx *ctx, int val); int isl_options_get_tile_scale_tile_loops(isl_ctx *ctx); + int isl_options_set_tile_shift_point_loops(isl_ctx *ctx, + int val); + int isl_options_get_tile_shift_point_loops(isl_ctx *ctx); The C function tiles the band using the given tile sizes inside its schedule. @@ -5093,6 +5139,15 @@ A new child band is created to represent the point loops and it is inserted between the modified band and its children. The C option specifies whether the tile loops iterators should be scaled by the tile sizes. +If the C option is set, then the point loops +are shifted to start at zero. + +A band can be split into two nested bands using the following function. + + int isl_band_split(__isl_keep isl_band *band, int pos); + +The resulting outer band contains the first C dimensions of C +while the inner band contains the remaining dimensions. A representation of the band can be printed using @@ -5657,6 +5712,9 @@ while printing the AST. int isl_options_set_ast_build_allow_else(isl_ctx *ctx, int val); int isl_options_get_ast_build_allow_else(isl_ctx *ctx); + int isl_options_set_ast_build_allow_or(isl_ctx *ctx, + int val); + int isl_options_get_ast_build_allow_or(isl_ctx *ctx); =over @@ -5755,6 +5813,11 @@ to scale down iterators of strided loops. This option specifies whether the AST generator is allowed to construct if statements with else branches. +=item * ast_build_allow_or + +This option specifies whether the AST generator is allowed +to construct if conditions with disjunctions. + =back =head3 Fine-grained Control over AST Generation