Polly 20.0.0git
|
#include <string.h>
#include <isl/val.h>
#include <isl/space.h>
#include <isl/map.h>
#include <isl/schedule_node.h>
#include <isl_schedule_band.h>
#include <isl_schedule_private.h>
Go to the source code of this file.
Classes | |
struct | isl_not_data |
Variables | |
static const char * | option_str [] |
|
static |
Definition at line 525 of file isl_schedule_band.c.
References isl_ast_loop_default, isl_dim_set, isl_set_lower_bound_si(), isl_set_universe(), isl_set_upper_bound_si(), isl_union_set_add_set(), isl_union_set_get_space(), isolate(), loop_type_space(), n, and type.
Referenced by isl_schedule_band_get_ast_build_options().
|
static |
Definition at line 843 of file isl_schedule_band.c.
References isl_union_set_get_space(), isl_union_set_subtract(), and loop_types().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 829 of file isl_schedule_band.c.
References isl_union_set_get_space(), isl_union_set_subtract(), and loop_types().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 775 of file isl_schedule_band.c.
References extract_loop_type(), isl_alloc_array, isl_ast_loop_error, and isl_schedule_band_get_ctx().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 711 of file isl_schedule_band.c.
References isl_ast_loop_atomic, isl_ast_loop_default, isl_ast_loop_error, isl_ast_loop_separate, isl_die, isl_dim_set, isl_error_invalid, isl_set_fix_si(), isl_set_free(), isl_set_is_empty(), isl_union_set_extract_set(), isl_union_set_get_ctx(), isl_union_set_get_space(), isolate(), loop_type_space(), pos(), res, and type.
Referenced by extract_isolate_loop_types(), and extract_loop_types().
|
static |
Definition at line 749 of file isl_schedule_band.c.
References extract_loop_type(), isl_alloc_array, isl_ast_loop_error, and isl_schedule_band_get_ctx().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 594 of file isl_schedule_band.c.
References isl_not_data::is, isl_bool_not(), isl_union_set_every_set(), and not().
Referenced by has_isolate_loop_type_options(), has_isolate_option(), and has_loop_type_options().
|
static |
Definition at line 695 of file isl_schedule_band.c.
References has_any(), and is_isolate_loop_type_option().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 626 of file isl_schedule_band.c.
References has_any(), and is_isolate().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 702 of file isl_schedule_band.c.
References has_any(), and is_loop_type_option().
Referenced by isl_schedule_band_set_ast_build_options().
|
static |
Definition at line 608 of file isl_schedule_band.c.
References isl_bool_false, isl_bool_true, isl_set_get_tuple_name(), isl_set_has_tuple_name(), isl_set_is_wrapping(), name, and set.
Referenced by has_isolate_option().
|
static |
Definition at line 662 of file isl_schedule_band.c.
References isl_ast_loop_atomic, isl_ast_loop_separate, isl_bool_false, isl_bool_true, isl_dim_in, isl_dim_out, isl_map_free(), isl_map_get_tuple_name(), isl_map_has_tuple_name(), isl_set_copy(), isl_set_is_wrapping(), isl_set_unwrap(), map, name, option_str, set, and type.
Referenced by has_isolate_loop_type_options().
|
static |
Definition at line 633 of file isl_schedule_band.c.
References isl_ast_loop_atomic, isl_ast_loop_separate, isl_bool_error, isl_bool_false, isl_bool_true, isl_dim_set, isl_set_dim(), isl_set_get_tuple_name(), isl_set_has_tuple_name(), name, option_str, set, and type.
Referenced by has_loop_type_options().
|
static |
Definition at line 1080 of file isl_schedule_band.c.
References isl_options_get_tile_scale_tile_loops(), isl_union_pw_aff_floor(), isl_union_pw_aff_scale_down_val(), isl_union_pw_aff_scale_val(), isl_val_copy(), isl_val_free(), n, scale(), and sizes.
Referenced by isl_schedule_band_tile().
__isl_give isl_schedule_band * isl_schedule_band_align_params | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_space * | space | ||
) |
Definition at line 1242 of file isl_schedule_band.c.
References isl_schedule_band_cow(), isl_schedule_band_free(), isl_space_copy(), isl_space_free(), and isl_union_set_align_params().
Referenced by isl_schedule_tree_align_params().
|
static |
Definition at line 28 of file isl_schedule_band.c.
References isl_calloc_type, and isl_schedule_band::ref.
Referenced by isl_schedule_band_dup(), and isl_schedule_band_from_multi_union_pw_aff().
__isl_give isl_schedule_band * isl_schedule_band_copy | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 149 of file isl_schedule_band.c.
References isl_schedule_band::ref.
Referenced by isl_schedule_tree_dup().
__isl_give isl_schedule_band * isl_schedule_band_cow | ( | __isl_take isl_schedule_band * | band | ) |
Definition at line 135 of file isl_schedule_band.c.
References isl_schedule_band_dup(), and isl_schedule_band::ref.
Referenced by isl_schedule_band_align_params(), isl_schedule_band_drop(), isl_schedule_band_gist(), isl_schedule_band_intersect_domain(), isl_schedule_band_member_set_ast_loop_type(), isl_schedule_band_member_set_coincident(), isl_schedule_band_member_set_isolate_ast_loop_type(), isl_schedule_band_mod(), isl_schedule_band_point(), isl_schedule_band_pullback_union_pw_multi_aff(), isl_schedule_band_replace_ast_build_option(), isl_schedule_band_reset_user(), isl_schedule_band_scale(), isl_schedule_band_scale_down(), isl_schedule_band_set_ast_build_options(), isl_schedule_band_set_partial_schedule(), isl_schedule_band_set_permutable(), isl_schedule_band_shift(), and isl_schedule_band_tile().
__isl_give isl_schedule_band * isl_schedule_band_drop | ( | __isl_take isl_schedule_band * | band, |
int | pos, | ||
int | n | ||
) |
Definition at line 1187 of file isl_schedule_band.c.
References if(), isl_die, isl_dim_set, isl_error_internal, isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), n, and pos().
Referenced by isl_schedule_tree_band_split().
__isl_give isl_schedule_band * isl_schedule_band_dup | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 83 of file isl_schedule_band.c.
References dup(), isl_alloc_array, isl_schedule_band_alloc(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), and isl_union_set_copy().
Referenced by isl_schedule_band_cow().
__isl_null isl_schedule_band * isl_schedule_band_free | ( | __isl_take isl_schedule_band * | band | ) |
Definition at line 161 of file isl_schedule_band.c.
References isl_union_set_free().
Referenced by isl_schedule_band_align_params(), isl_schedule_band_drop(), isl_schedule_band_dup(), isl_schedule_band_from_multi_union_pw_aff(), isl_schedule_band_gist(), isl_schedule_band_intersect_domain(), isl_schedule_band_member_set_ast_loop_type(), isl_schedule_band_member_set_coincident(), isl_schedule_band_member_set_isolate_ast_loop_type(), isl_schedule_band_mod(), isl_schedule_band_point(), isl_schedule_band_pullback_union_pw_multi_aff(), isl_schedule_band_replace_ast_build_option(), isl_schedule_band_reset_user(), isl_schedule_band_scale(), isl_schedule_band_scale_down(), isl_schedule_band_set_ast_build_options(), isl_schedule_band_set_partial_schedule(), isl_schedule_band_shift(), isl_schedule_band_tile(), isl_schedule_tree_free(), isl_schedule_tree_from_band(), and set_coincident().
__isl_give isl_schedule_band * isl_schedule_band_from_multi_union_pw_aff | ( | __isl_take isl_multi_union_pw_aff * | mupa | ) |
Definition at line 48 of file isl_schedule_band.c.
References isl_schedule_band::anchored, isl_schedule_band::ast_build_options, isl_schedule_band::coincident, isl_calloc_array, isl_multi_union_pw_aff_floor(), isl_schedule_band_alloc(), isl_schedule_band_free(), isl_space_params_alloc(), isl_union_set_empty(), isl_schedule_band::mupa, mupa, and isl_schedule_band::n.
Referenced by isl_schedule_node_insert_partial_schedule(), and read_band().
__isl_give isl_union_set * isl_schedule_band_get_ast_build_options | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 561 of file isl_schedule_band.c.
References add_loop_types(), and isl_union_set_copy().
Referenced by isl_schedule_tree_band_get_ast_build_options(), and print_tree_band().
__isl_give isl_set * isl_schedule_band_get_ast_isolate_option | ( | __isl_keep isl_schedule_band * | band, |
int | depth | ||
) |
Definition at line 923 of file isl_schedule_band.c.
References isl_dim_in, isl_dim_set, isl_schedule_band_get_space(), isl_space_add_dims(), isl_space_from_range(), isl_space_set_tuple_name(), isl_space_wrap(), isl_union_set_extract_set(), and isolate().
Referenced by isl_schedule_tree_band_get_ast_isolate_option().
isl_ctx * isl_schedule_band_get_ctx | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 21 of file isl_schedule_band.c.
Referenced by extract_isolate_loop_types(), extract_loop_types(), isl_schedule_band_drop(), isl_schedule_band_dup(), isl_schedule_band_member_get_ast_loop_type(), isl_schedule_band_member_get_coincident(), isl_schedule_band_member_get_isolate_ast_loop_type(), isl_schedule_band_member_set_ast_loop_type(), isl_schedule_band_member_set_coincident(), isl_schedule_band_member_set_isolate_ast_loop_type(), isl_schedule_band_point(), isl_schedule_band_shift(), and isl_schedule_tree_from_band().
__isl_give isl_multi_union_pw_aff * isl_schedule_band_get_partial_schedule | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 339 of file isl_schedule_band.c.
Referenced by initial_domain(), isl_schedule_band_point(), isl_schedule_tree_band_get_partial_schedule(), and subtree_schedule_extend().
isl_bool isl_schedule_band_get_permutable | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 273 of file isl_schedule_band.c.
References isl_bool_error, and isl_bool_ok().
Referenced by isl_schedule_tree_band_get_permutable(), and print_tree_band().
__isl_give isl_space * isl_schedule_band_get_space | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 308 of file isl_schedule_band.c.
Referenced by isl_schedule_band_get_ast_isolate_option(), and isl_schedule_tree_band_get_space().
__isl_give isl_schedule_band * isl_schedule_band_gist | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_union_set * | context | ||
) |
Definition at line 1290 of file isl_schedule_band.c.
References context, isl_multi_union_pw_aff_gist(), isl_schedule_band_cow(), isl_schedule_band_free(), and isl_union_set_free().
Referenced by isl_schedule_tree_band_gist().
__isl_give isl_schedule_band * isl_schedule_band_intersect_domain | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_union_set * | domain | ||
) |
Definition at line 318 of file isl_schedule_band.c.
References domain, isl_multi_union_pw_aff_intersect_domain(), isl_schedule_band_cow(), isl_schedule_band_free(), and isl_union_set_free().
Referenced by isl_schedule_tree_band_intersect_domain().
int isl_schedule_band_is_anchored | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 301 of file isl_schedule_band.c.
Referenced by isl_schedule_tree_from_band(), and isl_schedule_tree_is_anchored().
enum isl_ast_loop_type isl_schedule_band_member_get_ast_loop_type | ( | __isl_keep isl_schedule_band * | band, |
int | pos | ||
) |
Definition at line 368 of file isl_schedule_band.c.
References isl_ast_loop_default, isl_ast_loop_error, isl_die, isl_error_invalid, isl_schedule_band_get_ctx(), and pos().
Referenced by isl_schedule_band_member_set_ast_loop_type(), and isl_schedule_tree_band_member_get_ast_loop_type().
isl_bool isl_schedule_band_member_get_coincident | ( | __isl_keep isl_schedule_band * | band, |
int | pos | ||
) |
Definition at line 234 of file isl_schedule_band.c.
References isl_bool_error, isl_bool_ok(), isl_die, isl_error_invalid, isl_schedule_band_get_ctx(), and pos().
Referenced by any_coincident(), isl_schedule_band_member_set_coincident(), isl_schedule_tree_band_member_get_coincident(), and print_tree_band().
enum isl_ast_loop_type isl_schedule_band_member_get_isolate_ast_loop_type | ( | __isl_keep isl_schedule_band * | band, |
int | pos | ||
) |
Definition at line 423 of file isl_schedule_band.c.
References isl_ast_loop_default, isl_ast_loop_error, isl_die, isl_error_invalid, isl_schedule_band_get_ctx(), and pos().
Referenced by isl_schedule_band_member_set_isolate_ast_loop_type(), and isl_schedule_tree_band_member_get_isolate_ast_loop_type().
__isl_give isl_schedule_band * isl_schedule_band_member_set_ast_loop_type | ( | __isl_take isl_schedule_band * | band, |
int | pos, | ||
enum isl_ast_loop_type | type | ||
) |
Definition at line 387 of file isl_schedule_band.c.
References isl_calloc_array, isl_die, isl_error_invalid, isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), isl_schedule_band_member_get_ast_loop_type(), pos(), and type.
Referenced by isl_schedule_tree_band_member_set_ast_loop_type().
__isl_give isl_schedule_band * isl_schedule_band_member_set_coincident | ( | __isl_take isl_schedule_band * | band, |
int | pos, | ||
int | coincident | ||
) |
Definition at line 250 of file isl_schedule_band.c.
References isl_die, isl_error_invalid, isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), isl_schedule_band_member_get_coincident(), and pos().
Referenced by isl_schedule_tree_band_member_set_coincident(), and set_coincident().
__isl_give isl_schedule_band * isl_schedule_band_member_set_isolate_ast_loop_type | ( | __isl_take isl_schedule_band * | band, |
int | pos, | ||
enum isl_ast_loop_type | type | ||
) |
Definition at line 444 of file isl_schedule_band.c.
References isl_calloc_array, isl_die, isl_error_invalid, isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), isl_schedule_band_member_get_isolate_ast_loop_type(), pos(), and type.
Referenced by isl_schedule_tree_band_member_set_isolate_ast_loop_type().
__isl_give isl_schedule_band * isl_schedule_band_mod | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_val * | mv | ||
) |
Definition at line 1017 of file isl_schedule_band.c.
References isl_schedule_band_cow(), and isl_schedule_band_free().
Referenced by isl_schedule_tree_band_mod().
isl_size isl_schedule_band_n_member | ( | __isl_keep isl_schedule_band * | band | ) |
Definition at line 226 of file isl_schedule_band.c.
References isl_size_error.
Referenced by any_coincident(), isl_schedule_tree_band_n_member(), print_tree_band(), and set_coincident().
isl_bool isl_schedule_band_plain_is_equal | ( | __isl_keep isl_schedule_band * | band1, |
__isl_keep isl_schedule_band * | band2 | ||
) |
Definition at line 182 of file isl_schedule_band.c.
References equal, isl_bool_error, isl_bool_false, isl_bool_true, and isl_union_set_is_equal().
Referenced by isl_schedule_tree_plain_is_equal().
__isl_give isl_schedule_band * isl_schedule_band_point | ( | __isl_take isl_schedule_band * | band, |
__isl_keep isl_schedule_band * | tile, | ||
__isl_take isl_multi_val * | sizes | ||
) |
Definition at line 1146 of file isl_schedule_band.c.
References isl_options_get_tile_scale_tile_loops(), isl_options_get_tile_shift_point_loops(), isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), isl_schedule_band_get_partial_schedule(), sizes, and tile.
Referenced by isl_schedule_tree_band_tile().
__isl_give isl_schedule_band * isl_schedule_band_pullback_union_pw_multi_aff | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_union_pw_multi_aff * | upma | ||
) |
Definition at line 1266 of file isl_schedule_band.c.
References isl_multi_union_pw_aff_pullback_union_pw_multi_aff(), isl_schedule_band_cow(), isl_schedule_band_free(), and isl_union_pw_multi_aff_free().
Referenced by isl_schedule_tree_pullback_union_pw_multi_aff().
__isl_give isl_schedule_band * isl_schedule_band_replace_ast_build_option | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_set * | drop, | ||
__isl_take isl_set * | add | ||
) |
Definition at line 946 of file isl_schedule_band.c.
References add(), drop(), isl_schedule_band_cow(), isl_schedule_band_free(), isl_set_free(), isl_union_set_from_set(), isl_union_set_subtract(), and isl_union_set_union().
Referenced by isl_schedule_tree_band_split().
__isl_give isl_schedule_band * isl_schedule_band_reset_user | ( | __isl_take isl_schedule_band * | band | ) |
Definition at line 1224 of file isl_schedule_band.c.
References isl_schedule_band_cow(), isl_schedule_band_free(), and isl_union_set_reset_user().
Referenced by isl_schedule_tree_reset_user().
__isl_give isl_schedule_band * isl_schedule_band_scale | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_val * | mv | ||
) |
Definition at line 976 of file isl_schedule_band.c.
References isl_multi_union_pw_aff_floor(), isl_schedule_band_cow(), and isl_schedule_band_free().
Referenced by isl_schedule_tree_band_scale().
__isl_give isl_schedule_band * isl_schedule_band_scale_down | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_val * | mv | ||
) |
Definition at line 997 of file isl_schedule_band.c.
References isl_multi_union_pw_aff_floor(), isl_schedule_band_cow(), and isl_schedule_band_free().
Referenced by isl_schedule_tree_band_scale_down().
__isl_give isl_schedule_band * isl_schedule_band_set_ast_build_options | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_union_set * | options | ||
) |
Definition at line 865 of file isl_schedule_band.c.
References clear_isolate_loop_types(), clear_loop_types(), extract_isolate_loop_types(), extract_loop_types(), has_isolate_loop_type_options(), has_isolate_option(), has_loop_type_options(), isl_schedule_band_cow(), isl_schedule_band_free(), and isl_union_set_free().
Referenced by isl_schedule_tree_band_set_ast_build_options(), and read_band().
__isl_give isl_schedule_band * isl_schedule_band_set_partial_schedule | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_union_pw_aff * | schedule | ||
) |
Definition at line 347 of file isl_schedule_band.c.
References isl_schedule_band_cow(), isl_schedule_band_free(), and schedule.
Referenced by isl_schedule_tree_band_set_partial_schedule().
__isl_give isl_schedule_band * isl_schedule_band_set_permutable | ( | __isl_take isl_schedule_band * | band, |
int | permutable | ||
) |
Definition at line 282 of file isl_schedule_band.c.
References isl_schedule_band_cow().
Referenced by isl_schedule_tree_band_set_permutable(), and read_band().
__isl_give isl_schedule_band * isl_schedule_band_shift | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_union_pw_aff * | shift | ||
) |
Definition at line 1037 of file isl_schedule_band.c.
References isl_die, isl_error_invalid, isl_multi_union_pw_aff_domain(), isl_schedule_band_cow(), isl_schedule_band_free(), isl_schedule_band_get_ctx(), isl_union_set_free(), isl_union_set_is_subset(), and subset.
Referenced by isl_schedule_tree_band_shift().
__isl_give isl_schedule_band * isl_schedule_band_tile | ( | __isl_take isl_schedule_band * | band, |
__isl_take isl_multi_val * | sizes | ||
) |
Definition at line 1118 of file isl_schedule_band.c.
References isl_multi_union_pw_aff_tile(), isl_schedule_band_cow(), isl_schedule_band_free(), and sizes.
Referenced by isl_schedule_tree_band_tile().
|
static |
Definition at line 495 of file isl_schedule_band.c.
References isl_dim_in, isl_dim_set, isl_space_add_dims(), isl_space_from_range(), isl_space_set_from_params(), isl_space_set_tuple_name(), isl_space_wrap(), isolate(), name, option_str, and type.
Referenced by add_loop_types(), extract_loop_type(), and loop_types().
|
static |
Definition at line 806 of file isl_schedule_band.c.
References isl_ast_loop_atomic, isl_ast_loop_separate, isl_set_universe(), isl_union_set_add_set(), isl_union_set_empty(), isl_union_set_get_space(), isolate(), loop_type_space(), set, and type.
Referenced by clear_isolate_loop_types(), and clear_loop_types().
|
static |
Definition at line 584 of file isl_schedule_band.c.
References isl_not_data::is, isl_bool_not(), set, and user.
Referenced by has_any(), and isl_qpolynomial_fold_involves_dims().
|
static |
Definition at line 478 of file isl_schedule_band.c.
Referenced by is_isolate_loop_type_option(), is_loop_type_option(), and loop_type_space().