Polly 20.0.0git
|
#include <isl_ctx_private.h>
#include "isl_map_private.h"
#include <isl_seq.h>
#include <isl/options.h>
#include "isl_tab.h"
#include <isl_mat_private.h>
#include <isl_local_space_private.h>
#include <isl_val_private.h>
#include <isl_vec_private.h>
#include <isl_aff_private.h>
#include <isl_equalities.h>
#include <isl_constraint_private.h>
#include <set_to_map.c>
#include <set_from_map.c>
Go to the source code of this file.
Classes | |
struct | isl_coalesce_info |
struct | isl_wraps |
struct | isl_expanded |
Macros | |
#define | STATUS_ERROR -1 |
#define | STATUS_REDUNDANT 1 |
#define | STATUS_VALID 2 |
#define | STATUS_SEPARATE 3 |
#define | STATUS_CUT 4 |
#define | STATUS_ADJ_EQ 5 |
#define | STATUS_ADJ_INEQ 6 |
Enumerations | |
enum | isl_change { isl_change_error = -1 , isl_change_none = 0 , isl_change_drop_first , isl_change_drop_second , isl_change_fuse } |
#define STATUS_ADJ_EQ 5 |
Definition at line 44 of file isl_coalesce.c.
#define STATUS_ADJ_INEQ 6 |
Definition at line 45 of file isl_coalesce.c.
#define STATUS_CUT 4 |
Definition at line 43 of file isl_coalesce.c.
#define STATUS_ERROR -1 |
Definition at line 39 of file isl_coalesce.c.
#define STATUS_REDUNDANT 1 |
Definition at line 40 of file isl_coalesce.c.
#define STATUS_SEPARATE 3 |
Definition at line 42 of file isl_coalesce.c.
#define STATUS_VALID 2 |
Definition at line 41 of file isl_coalesce.c.
enum isl_change |
Enumerator | |
---|---|
isl_change_error | |
isl_change_none | |
isl_change_drop_first | |
isl_change_drop_second | |
isl_change_fuse |
Definition at line 393 of file isl_coalesce.c.
|
static |
Definition at line 1341 of file isl_coalesce.c.
References add_wrap(), isl_coalesce_info::bmap, bound, isl_coalesce_info::eq, isl_basic_map::eq, isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_dim(), isl_dim_all, isl_seq_eq(), isl_seq_is_neg(), isl_stat_error, isl_stat_ok, isl_tab_is_redundant(), m, isl_wraps::mat, isl_basic_map::n_eq, isl_basic_map::n_ineq, isl_mat::n_row, set, STATUS_REDUNDANT, STATUS_VALID, isl_coalesce_info::tab, total(), and wraps_mark_failed().
Referenced by add_selected_wraps_around_facet(), and add_wraps().
|
static |
Definition at line 1538 of file isl_coalesce.c.
References add_selected_wraps(), isl_coalesce_info::bmap, bound, check_wraps(), isl_tab::empty, has_redundant_cuts(), isl_basic_map::ineq, isl_basic_map_dim(), isl_dim_all, isl_seq_neg(), isl_stat_error, isl_stat_ok, isl_tab_detect_redundant(), isl_tab_rollback(), isl_tab_select_facet(), isl_tab_snap(), isl_wraps::mat, n, isl_basic_map::n_eq, isl_mat::n_row, set, isl_coalesce_info::tab, total(), and wraps_mark_failed().
Referenced by add_valid_wraps_around_facet(), and add_wraps_around_facet().
|
static |
Definition at line 3756 of file isl_coalesce.c.
References aff, isl_aff_free(), isl_aff_is_nan(), isl_int_neg, isl_int_set_si, isl_seq_clr(), isl_seq_cpy(), isl_stat_error, isl_stat_ok, isl_tab_add_eq(), isl_tab_get_ctx(), isl_vec_alloc(), isl_vec_free(), n, sub(), and isl_coalesce_info::tab.
Referenced by add_subs().
|
static |
Definition at line 3709 of file isl_coalesce.c.
References aff, isl_coalesce_info::bmap, isl_aff_free(), isl_aff_is_nan(), isl_basic_map_alloc_div(), isl_basic_map_cow(), isl_basic_map_extend(), isl_basic_map_mark_div_unknown(), isl_basic_map_swap_div(), isl_stat_error, isl_stat_ok, isl_tab_insert_var(), n, and isl_coalesce_info::tab.
Referenced by add_subs().
|
static |
Definition at line 3807 of file isl_coalesce.c.
References add_sub_equalities(), add_sub_vars(), isl_stat_error, isl_tab_extend_cons(), isl_tab_extend_vars(), n, isl_tab::n_var, and isl_coalesce_info::tab.
Referenced by coalesce_with_subs().
|
static |
Definition at line 428 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::eq, isl_basic_map::eq, isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_alloc_equality(), isl_basic_map_alloc_inequality(), isl_basic_map_free(), isl_seq_cpy(), isl_seq_neg(), isl_basic_map::n_eq, isl_basic_map::n_ineq, and STATUS_VALID.
Referenced by fuse().
|
static |
Definition at line 1605 of file isl_coalesce.c.
References add_selected_wraps_around_facet(), bound, and set.
Referenced by is_adj_ineq_extension().
|
static |
Definition at line 1291 of file isl_coalesce.c.
References allow_wrap(), bound, isl_seq_cpy(), isl_seq_eq(), isl_seq_neg(), isl_set_wrap_facet(), isl_wraps::mat, isl_mat::row, and set.
Referenced by add_selected_wraps().
|
static |
Definition at line 1422 of file isl_coalesce.c.
References add_selected_wraps(), bound, and set.
Referenced by can_wrap_in_facet(), check_eq_adj_eq(), and wrap_in_facet().
|
static |
Definition at line 1591 of file isl_coalesce.c.
References add_selected_wraps_around_facet(), bound, and set.
Referenced by can_wrap_in_facet().
|
static |
Definition at line 163 of file isl_coalesce.c.
References STATUS_REDUNDANT.
Referenced by coalesce_local_pair_reuse(), coalesce_with_expanded_divs(), and separating_equality().
|
static |
Definition at line 2131 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::ineq, isl_bool_error, isl_bool_false, isl_bool_true, isl_ineq_error, isl_ineq_redundant, n, isl_basic_map::n_ineq, STATUS_CUT, type, and type_of_relaxed().
Referenced by check_single_adj_eq().
|
static |
Definition at line 2415 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::ineq, isl_basic_map::n_ineq, STATUS_ADJ_INEQ, STATUS_REDUNDANT, and STATUS_VALID.
Referenced by separating_equality().
|
static |
Definition at line 287 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::eq, isl_coalesce_info::ineq, isl_basic_map::n_eq, isl_basic_map::n_ineq, STATUS_CUT, STATUS_REDUNDANT, and STATUS_VALID.
Referenced by check_adj_eq().
|
static |
Definition at line 1269 of file isl_coalesce.c.
References isl_wraps::bound, isl_int_abs_gt, isl_wraps::mat, isl_wraps::max, isl_mat::n_col, and isl_mat::row.
Referenced by add_wrap().
|
static |
Definition at line 129 of file isl_coalesce.c.
Referenced by any_eq(), any_ineq(), tab_insert_divs(), and tighten_on_relaxed_facet().
|
static |
Definition at line 212 of file isl_coalesce.c.
References any(), isl_coalesce_info::bmap, isl_coalesce_info::eq, isl_basic_map_n_equality(), and isl_tab::n_eq.
Referenced by check_adj_eq(), check_adj_ineq(), check_ineq_adj_eq(), coalesce_local_pair_reuse(), and coalesce_with_expanded_divs().
|
static |
Definition at line 224 of file isl_coalesce.c.
References any(), isl_coalesce_info::bmap, isl_coalesce_info::ineq, and isl_basic_map_n_inequality().
Referenced by check_adj_eq(), check_adj_ineq(), check_ineq_adj_eq(), coalesce_local_pair_reuse(), and coalesce_with_expanded_divs().
|
static |
Definition at line 1758 of file isl_coalesce.c.
References add_wraps(), add_wraps_around_facet(), isl_coalesce_info::bmap, bound, isl_vec::ctx, isl_wraps::failed, fuse, isl_basic_map::ineq, isl_basic_map_dim(), isl_basic_map_get_ctx(), isl_change_error, isl_change_none, isl_dim_all, isl_int_add_ui, isl_mat_alloc(), isl_seq_cpy(), isl_seq_normalize(), isl_set_free(), isl_vec_alloc(), isl_vec_free(), isl_wraps::mat, isl_basic_map::n_eq, isl_basic_map::n_ineq, isl_mat::n_row, isl_mat::row, set_from_updated_bmap(), total(), wraps_free(), and wraps_init().
Referenced by check_ineq_adj_eq(), and check_single_adj_eq().
|
static |
Definition at line 2054 of file isl_coalesce.c.
References isl_coalesce_info::bmap, count_eq(), count_ineq(), isl_coalesce_info::eq, isl_basic_map::eq, isl_coalesce_info::ineq, isl_basic_map_dim(), ISL_BASIC_MAP_RATIONAL, isl_change_error, isl_change_none, isl_dim_all, ISL_F_ISSET, isl_ineq_error, isl_ineq_redundant, isl_seq_neg(), n, isl_basic_map::n_eq, isl_basic_map::n_ineq, STATUS_CUT, total(), type, type_of_relaxed(), and wrap_in_facets().
Referenced by check_adj_eq(), and check_wrap().
|
static |
Definition at line 2218 of file isl_coalesce.c.
References all_valid_or_cut(), any_eq(), any_ineq(), can_wrap_in_set(), check_adj_eq(), check_single_adj_eq(), count_ineq(), isl_change_none, STATUS_ADJ_EQ, STATUS_ADJ_INEQ, and STATUS_CUT.
Referenced by check_adj_eq(), and coalesce_local_pair_reuse().
|
static |
Definition at line 1710 of file isl_coalesce.c.
References any_eq(), any_ineq(), count_ineq(), fuse, is_adj_ineq_extension(), isl_change_none, STATUS_ADJ_INEQ, and STATUS_CUT.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 3953 of file isl_coalesce.c.
References check_coalesce_into_eq(), has_nested_div(), invert_change(), isl_basic_map_divs_known(), isl_change_error, isl_change_none, and nested().
Referenced by coalesce_pair().
|
static |
Definition at line 3892 of file isl_coalesce.c.
References coalesce_with_subs(), equal, isl_basic_map_copy(), isl_basic_map_dim(), isl_basic_map_free(), isl_basic_map_intersect(), isl_basic_map_plain_affine_hull(), isl_basic_map_plain_is_empty(), isl_basic_map_plain_is_equal(), isl_change_error, isl_change_none, isl_dim_div, n, and set_up_substitutions().
Referenced by check_coalesce_eq().
|
static |
Definition at line 2296 of file isl_coalesce.c.
References add_wraps(), isl_coalesce_info::bmap, bound, count_eq(), isl_vec::ctx, isl_basic_map::eq, isl_wraps::failed, find_eq(), fuse, isl_basic_map_dim(), isl_basic_map_get_ctx(), isl_change_error, isl_change_none, isl_dim_all, isl_int_add_ui, isl_int_sub_ui, isl_mat_alloc(), isl_seq_cpy(), isl_seq_neg(), isl_set_free(), isl_vec_alloc(), isl_vec_free(), isl_wraps::mat, isl_basic_map::n_eq, isl_basic_map::n_ineq, isl_mat::n_row, isl_mat::row, set_from_updated_bmap(), STATUS_ADJ_EQ, total(), wraps_free(), and wraps_init().
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 624 of file isl_coalesce.c.
References isl_coalesce_info::bmap, fuse, isl_coalesce_info::ineq, isl_change_error, isl_change_none, isl_tab_mark_rational(), isl_tab_rollback(), isl_tab_select_facet(), isl_tab_snap(), isl_basic_map::n_eq, isl_basic_map::n_ineq, STATUS_CUT, status_in(), STATUS_VALID, and isl_coalesce_info::tab.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 2259 of file isl_coalesce.c.
References any_eq(), any_ineq(), can_wrap_in_facet(), count_ineq(), find_ineq(), isl_change_none, STATUS_ADJ_EQ, STATUS_ADJ_INEQ, and STATUS_CUT.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 2169 of file isl_coalesce.c.
References all_cut_by_one(), can_wrap_in_facet(), count_ineq(), find_ineq(), is_relaxed_extension(), isl_basic_map_get_ctx(), isl_bool_true, isl_calloc_array, isl_change_error, isl_change_none, STATUS_ADJ_EQ, and STATUS_CUT.
Referenced by check_adj_eq().
|
static |
Definition at line 2114 of file isl_coalesce.c.
References can_wrap_in_set(), and isl_change_none.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 1434 of file isl_coalesce.c.
References isl_ineq_error, isl_ineq_redundant, isl_mat_drop_rows(), isl_stat_error, isl_stat_ok, isl_tab_ineq_type(), isl_wraps::mat, isl_mat::n_row, isl_mat::row, type, and wraps_mark_failed().
Referenced by add_selected_wraps_around_facet().
|
static |
Definition at line 356 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_free(), isl_tab_free(), and isl_coalesce_info::tab.
|
static |
Definition at line 339 of file isl_coalesce.c.
References isl_tab::bmap, isl_basic_map_free(), isl_tab_free(), and n.
Referenced by isl_map_coalesce().
|
static |
Definition at line 2405 of file isl_coalesce.c.
References isl_coalesce_info::eq, and isl_coalesce_info::ineq.
Referenced by coalesce_expand_tab_divs(), coalesce_local_pair_reuse(), coalesce_with_expanded_divs(), fix_constant_divs(), and separating_equality().
|
static |
Definition at line 4099 of file isl_coalesce.c.
References coalesce_range(), and n.
Referenced by div_find_coalesce(), FN(), isl_map_coalesce(), and MULTI().
|
static |
Definition at line 3426 of file isl_coalesce.c.
References isl_coalesce_info::bmap, coalesce_with_expanded_divs(), isl_alloc_array, isl_basic_map_divs_known(), isl_basic_map_get_ctx(), isl_basic_map_get_divs(), isl_change_error, isl_change_none, isl_mat_free(), isl_merge_divs(), and isl_mat::n_row.
Referenced by coalesce_divs(), and coalesce_subset_with_equalities().
|
static |
Definition at line 3561 of file isl_coalesce.c.
References isl_coalesce_info::bmap, coalesce_after_aligning_divs(), coalesce_subset_with_equalities(), invert_change(), isl_change_none, and isl_basic_map::n_div.
Referenced by coalesce_pair().
|
static |
Definition at line 3293 of file isl_coalesce.c.
References isl_coalesce_info::bmap, clear_status(), coalesce_local_pair_reuse(), expand_tab(), init_status(), isl_basic_map_copy(), isl_basic_map_divs_known(), isl_basic_map_free(), isl_change_drop_second, isl_change_error, isl_change_none, isl_tab_rollback(), and isl_tab_snap().
Referenced by coalesce_with_expanded_divs().
|
static |
Definition at line 318 of file isl_coalesce.c.
References isl_coalesce_info::bmap, hull, isl_coalesce_info::hull_hash, isl_basic_map_copy(), isl_basic_map_dim(), isl_basic_map_drop_constraints_involving_dims(), isl_basic_map_free(), isl_basic_map_get_hash(), isl_basic_map_plain_affine_hull(), isl_dim_div, and isl_tab::n_div.
Referenced by isl_map_coalesce().
|
static |
Definition at line 2632 of file isl_coalesce.c.
References coalesce_local_pair_reuse(), and init_status().
Referenced by coalesce_pair(), and coalesce_with_subs().
|
static |
Definition at line 2547 of file isl_coalesce.c.
References all(), any_eq(), any_ineq(), check_adj_eq(), check_adj_ineq(), check_eq_adj_eq(), check_facets(), check_ineq_adj_eq(), check_wrap(), clear_status(), drop(), isl_coalesce_info::eq, isl_coalesce_info::ineq, isl_change_drop_first, isl_change_drop_second, isl_change_error, isl_change_none, separating_equality(), set_eq_status_in(), set_ineq_status_in(), STATUS_ADJ_EQ, STATUS_ADJ_INEQ, STATUS_CUT, STATUS_ERROR, STATUS_SEPARATE, and STATUS_VALID.
Referenced by coalesce_expand_tab_divs(), and coalesce_local_pair().
|
static |
Definition at line 4002 of file isl_coalesce.c.
References isl_coalesce_info::bmap, check_coalesce_eq(), coalesce_divs(), coalesce_local_pair(), harmonize_divs(), isl_basic_map_get_ctx(), isl_change_error, isl_change_none, isl_options_get_coalesce_preserve_locals(), isl_basic_map::n_div, and same_divs().
Referenced by coalesce_range().
|
static |
Definition at line 4054 of file isl_coalesce.c.
References coalesce_pair(), isl_change_drop_first, isl_change_drop_second, isl_change_error, isl_change_fuse, isl_change_none, isl_die, isl_error_internal, and isl_max().
Referenced by coalesce().
|
static |
Definition at line 3500 of file isl_coalesce.c.
References isl_coalesce_info::bmap, coalesce_after_aligning_divs(), equal, isl_basic_map_copy(), isl_basic_map_free(), isl_basic_map_intersect(), isl_basic_map_plain_affine_hull(), isl_basic_map_plain_is_empty(), isl_basic_map_plain_is_equal(), isl_change_error, isl_change_none, isl_basic_map::n_div, and isl_basic_map::n_eq.
Referenced by coalesce_divs().
|
static |
Definition at line 3356 of file isl_coalesce.c.
References all(), any_eq(), any_ineq(), isl_coalesce_info::bmap, clear_status(), coalesce_expand_tab_divs(), drop(), isl_coalesce_info::eq, eq_status_in(), isl_coalesce_info::ineq, ineq_status_in(), init_status(), isl_basic_map_copy(), isl_basic_map_expand_divs(), isl_basic_map_free(), isl_basic_map_mark_final(), isl_change_drop_second, isl_change_error, isl_change_none, isl_mat_copy(), isl_basic_map::n_eq, isl_basic_map::n_ineq, STATUS_ERROR, STATUS_SEPARATE, STATUS_VALID, and isl_coalesce_info::tab.
Referenced by coalesce_after_aligning_divs().
|
static |
Definition at line 3842 of file isl_coalesce.c.
References add_subs(), isl_coalesce_info::bmap, coalesce_local_pair(), isl_basic_map_copy(), isl_basic_map_dim(), isl_basic_map_free(), isl_change_drop_first, isl_change_error, isl_change_none, isl_dim_all, isl_dim_div, isl_tab_rollback(), and isl_tab_snap().
Referenced by check_coalesce_into_eq().
|
static |
Definition at line 671 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::eq, isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_dim(), isl_bool_error, isl_bool_false, isl_bool_true, isl_dim_all, isl_seq_neg(), isl_basic_map::n_eq, isl_basic_map::n_ineq, status_in(), STATUS_REDUNDANT, and STATUS_VALID.
Referenced by is_adj_ineq_extension_with_wraps(), and is_relaxed_extension().
|
static |
Definition at line 3005 of file isl_coalesce.c.
References isl_stat_error, isl_stat_ok, isl_tab_add_ineq(), isl_tab::n_con, and isl_tab::n_eq.
Referenced by fix_constant_divs(), and tab_insert_divs().
|
static |
Definition at line 152 of file isl_coalesce.c.
Referenced by check_solution(), common_constraints(), count_eq(), count_fields(), count_for(), count_ineq(), count_same_name(), find_prime(), import(), isl_basic_set_count_upto(), isl_set_count(), isl_set_count_upto(), single_local(), test_ast_gen1(), test_mpz_import(), test_schedule_tree(), and test_schedule_tree_generic().
|
static |
Definition at line 264 of file isl_coalesce.c.
References isl_coalesce_info::bmap, count(), isl_coalesce_info::eq, isl_basic_map_n_equality(), and isl_tab::n_eq.
Referenced by can_wrap_in_set(), and check_eq_adj_eq().
|
static |
Definition at line 276 of file isl_coalesce.c.
References isl_coalesce_info::bmap, count(), isl_coalesce_info::ineq, and isl_basic_map_n_inequality().
Referenced by can_wrap_in_set(), check_adj_eq(), check_adj_ineq(), check_ineq_adj_eq(), and check_single_adj_eq().
|
static |
Definition at line 367 of file isl_coalesce.c.
References clear(), and isl_coalesce_info::removed.
Referenced by coalesce_local_pair_reuse(), coalesce_with_expanded_divs(), drop_argument(), drop_constraints(), extend(), fuse(), isl_basic_map_gauss5(), isl_map_coalesce(), isl_schedule_band_replace_ast_build_option(), replace_by_universe(), reset_band(), and update_todo().
|
static |
Definition at line 67 of file isl_coalesce.c.
References isl_basic_map_dim(), isl_calloc_array, isl_dim_all, isl_seq_neg(), STATUS_ERROR, and status_in().
Referenced by coalesce_with_expanded_divs(), and set_eq_status_in().
|
static |
Definition at line 375 of file isl_coalesce.c.
Referenced by extend().
|
static |
Definition at line 3214 of file isl_coalesce.c.
References isl_basic_map_dim(), isl_basic_map_free(), isl_basic_map_get_ctx(), isl_calloc_array, isl_dim_all, isl_dim_div, isl_int_clear, isl_int_init, isl_stat_error, n, isl_tab::n_var, isl_expanded::pos, pos(), isl_coalesce_info::tab, tab_insert_divs(), total(), and val.
Referenced by coalesce_expand_tab_divs().
|
static |
Definition at line 1045 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::div, drop(), exchange(), isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_cow(), isl_basic_map_dim(), ISL_BASIC_MAP_FINAL, ISL_BASIC_MAP_NO_REDUNDANT, isl_change_error, isl_change_fuse, isl_dim_all, ISL_F_CLR, ISL_F_SET, isl_int_add_ui, isl_int_set_si, isl_seq_eq(), isl_coalesce_info::modified, n, isl_basic_map::n_div, isl_coalesce_info::simplify, and total().
Referenced by is_relaxed_extension().
|
static |
Definition at line 142 of file isl_coalesce.c.
Referenced by contains(), find_eq(), find_ineq(), and replace().
|
static |
Definition at line 239 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::eq, find(), isl_basic_map_n_equality(), and isl_tab::n_eq.
Referenced by check_eq_adj_eq().
|
static |
Definition at line 252 of file isl_coalesce.c.
References isl_coalesce_info::bmap, find(), isl_coalesce_info::ineq, and isl_basic_map_n_inequality().
Referenced by check_ineq_adj_eq(), check_single_adj_eq(), and is_adj_ineq_extension().
|
static |
Definition at line 3059 of file isl_coalesce.c.
References isl_coalesce_info::bmap, clear_status(), copy_ineq(), isl_vec::el, init_status(), isl_basic_map_add_div_constraints(), isl_basic_map_add_ineq(), isl_basic_map_extend_constraints(), isl_basic_map_offset(), isl_dim_div, isl_int_neg, isl_int_set, isl_int_set_si, isl_seq_clr(), isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), isl_tab_select_facet(), isl_vec_alloc(), isl_vec_free(), n, isl_tab::n_con, isl_tab::n_var, isl_expanded::pos, isl_coalesce_info::tab, and isl_expanded::val.
Referenced by tab_insert_divs().
|
static |
Definition at line 511 of file isl_coalesce.c.
References add_valid_constraints(), isl_coalesce_info::bmap, isl_tab::bmap, clear(), isl_basic_map::dim, isl_basic_map::div, drop(), fuse, isl_basic_map::ineq, isl_basic_map_alloc_div(), isl_basic_map_alloc_inequality(), isl_basic_map_alloc_space(), isl_basic_map_detect_inequality_pairs(), isl_basic_map_dim(), isl_basic_map_eliminate_pure_unit_divs(), isl_basic_map_finalize(), isl_basic_map_free(), isl_basic_map_gauss(), ISL_BASIC_MAP_RATIONAL, isl_basic_map_simplify(), isl_change_error, isl_change_fuse, isl_change_none, isl_dim_all, ISL_F_ISSET, ISL_F_SET, isl_int_set_si, isl_seq_cpy(), isl_seq_eq(), isl_space_copy(), isl_tab_detect_redundant(), isl_tab_free(), isl_tab_from_basic_map(), isl_coalesce_info::modified, isl_basic_map::n_div, isl_basic_map::n_eq, isl_tab::n_eq, isl_basic_map::n_ineq, number_of_constraints_increases(), isl_coalesce_info::simplify, simplify, isl_coalesce_info::tab, and total().
|
static |
Definition at line 2928 of file isl_coalesce.c.
References isl_coalesce_info::bmap, equal, harmonize_divs_with_hulls(), harmonize_stride_divs(), isl_basic_map_copy(), isl_basic_map_plain_affine_hull(), isl_basic_map_wrap(), isl_basic_set_free(), isl_basic_set_plain_is_equal(), isl_stat_error, isl_stat_ok, and isl_basic_map::n_div.
Referenced by coalesce_pair().
|
static |
Definition at line 2860 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::div, isl_aff_free(), isl_aff_sub(), isl_aff_substitute_equalities(), isl_basic_map_dim(), isl_basic_map_get_local_space(), isl_basic_set_copy(), isl_dim_all, isl_int_ne, isl_local_space_div_is_known(), isl_local_space_free(), isl_local_space_get_div(), isl_local_space_wrap(), isl_seq_eq(), isl_stat_error, isl_stat_ok, isl_basic_map::n_div, shift_if_cst_int(), and total().
Referenced by harmonize_divs().
|
static |
Definition at line 2748 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_dim(), isl_basic_map_div_is_known(), isl_basic_map_equal_div_expr_except_constant(), isl_dim_div, isl_stat_error, isl_stat_ok, n, and normalize_stride_div().
Referenced by harmonize_divs().
|
static |
Definition at line 3589 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::div, isl_basic_map_dim(), isl_bool_error, isl_bool_false, isl_bool_true, isl_dim_all, isl_dim_div, isl_seq_first_non_zero(), and total().
Referenced by check_coalesce_eq().
|
static |
Definition at line 1486 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::ineq, isl_basic_map_n_equality(), isl_basic_map_n_inequality(), isl_bool_error, isl_bool_false, isl_bool_true, isl_tab_is_redundant(), STATUS_CUT, and isl_coalesce_info::tab.
Referenced by add_selected_wraps_around_facet().
|
static |
Definition at line 101 of file isl_coalesce.c.
References isl_calloc_array, isl_tab_is_redundant(), STATUS_ERROR, status_in(), STATUS_REDUNDANT, and STATUS_SEPARATE.
Referenced by coalesce_with_expanded_divs(), and set_ineq_status_in().
|
static |
Definition at line 2371 of file isl_coalesce.c.
References isl_coalesce_info::eq, and isl_coalesce_info::ineq.
Referenced by coalesce_expand_tab_divs(), coalesce_local_pair(), coalesce_with_expanded_divs(), and fix_constant_divs().
|
static |
Definition at line 405 of file isl_coalesce.c.
References isl_change_drop_first, isl_change_drop_second, isl_change_error, isl_change_fuse, and isl_change_none.
Referenced by check_coalesce_eq(), and coalesce_divs().
|
static |
Definition at line 1627 of file isl_coalesce.c.
References add_valid_wraps_around_facet(), bound, find_ineq(), is_adj_ineq_extension_with_wraps(), isl_basic_map_dim(), isl_basic_map_get_ctx(), isl_basic_map_n_equality(), isl_basic_map_n_inequality(), isl_change_error, isl_die, isl_dim_all, isl_error_internal, isl_mat_alloc(), isl_set_free(), isl_vec_alloc(), isl_vec_free(), isl_wraps::mat, set_from_updated_bmap(), STATUS_ADJ_INEQ, total(), wraps_free(), and wraps_init().
Referenced by check_adj_ineq(), and separating_equality().
|
static |
Definition at line 760 of file isl_coalesce.c.
References isl_coalesce_info::bmap, contains(), fuse, isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_dim(), isl_basic_map_n_equality(), isl_basic_map_n_inequality(), isl_change_error, isl_change_none, isl_dim_all, isl_int_sub_ui, isl_mat_rows(), isl_seq_neg(), isl_tab_add_ineq(), isl_tab_detect_constants(), isl_tab_extend_cons(), isl_tab_rollback(), isl_tab_snap(), isl_tab_unrestrict(), STATUS_VALID, and total().
Referenced by is_adj_ineq_extension().
|
static |
Definition at line 858 of file isl_coalesce.c.
References isl_bool_false, isl_bool_true, isl_int_is_zero, and total().
Referenced by tighten_on_relaxed_facet().
|
static |
Definition at line 1117 of file isl_coalesce.c.
References isl_coalesce_info::bmap, contains(), extend(), isl_change_error, isl_change_none, isl_tab_is_equality(), isl_tab_is_redundant(), isl_tab_relax(), isl_tab_rollback(), isl_tab_select_facet(), isl_tab_snap(), n, isl_basic_map::n_eq, and tighten_on_relaxed_facet().
Referenced by check_single_adj_eq().
__isl_give isl_map * isl_map_coalesce | ( | __isl_take isl_map * | map | ) |
Definition at line 4191 of file isl_coalesce.c.
References isl_coalesce_info::bmap, clear_coalesce_info(), coalesce(), coalesce_info_set_hull_hash(), drop(), isl_tab::empty, isl_basic_map_copy(), ISL_BASIC_MAP_NO_IMPLICIT, ISL_BASIC_MAP_NO_REDUNDANT, isl_basic_map_reduce_coefficients(), isl_calloc_array, ISL_F_ISSET, isl_map_cow(), isl_map_free(), isl_map_get_ctx(), isl_map_remove_empty_parts(), isl_map_sort_divs(), isl_tab_detect_implicit_equalities(), isl_tab_detect_redundant(), isl_tab_from_basic_map(), isl_tab_make_equalities_explicit(), map, n, isl_coalesce_info::tab, and update_basic_maps().
Referenced by isl::map::coalesce(), compose(), construct_extended_path(), floyd_warshall_iterate(), generate_domain(), isl_ast_build_get_separation_class(), isl_map_power(), isl_map_reaching_path_lengths(), isl_map_transitive_closure(), isl_set_coalesce(), isl_union_map_coalesce(), main(), and test_coalesce_special().
|
static |
Definition at line 4035 of file isl_coalesce.c.
Referenced by coalesce_range().
__isl_give isl_set * isl_set_coalesce | ( | __isl_take isl_set * | set | ) |
Definition at line 4261 of file isl_coalesce.c.
References isl_map_coalesce(), set, set_from_map(), and set_to_map.
Referenced by box_closure(), build_pieces(), polly::ScopBuilder::buildConditionSets(), isl::set::coalesce(), compute_domains_init_options(), construct_component(), FN(), isl_ast_build_restrict_generated(), isl_ast_build_restrict_internal(), isl_pw_aff_cond(), isl_set_coalesce_preserve(), polly::Dependences::isParallel(), separate_domain(), store_guard(), test_coalesce_intersection(), test_coalesce_set(), test_coalesce_special3(), test_coalesce_union(), uset_convex_hull(), and uset_convex_hull_wrap_bounded().
|
static |
Definition at line 2700 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_has_defining_equality(), isl_basic_map_set_div_expr_constant_num_si_inplace(), isl_constraint_free(), isl_constraint_get_coefficient(), isl_constraint_get_constant(), isl_constraint_is_div_equality(), isl_dim_div, isl_int_clear, isl_int_fdiv_q, isl_int_init, isl_stat_error, isl_stat_ok, and shift_div().
Referenced by harmonize_stride_divs().
|
static |
Definition at line 827 of file isl_coalesce.c.
References isl_int_is_negone, isl_int_is_one, isl_int_is_zero, and isl_seq_first_non_zero().
Referenced by tighten_on_relaxed_facet().
|
static |
Definition at line 473 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_tab_is_redundant(), isl_basic_map::n_eq, isl_basic_map::n_ineq, and isl_coalesce_info::tab.
Referenced by fuse().
|
static |
Definition at line 2969 of file isl_coalesce.c.
References isl_basic_map_dim(), isl_basic_map_divs_known(), isl_bool_error, isl_bool_false, isl_bool_true, isl_dim_all, isl_seq_eq(), and total().
Referenced by coalesce_pair().
|
static |
Definition at line 2447 of file isl_coalesce.c.
References all(), all_ineq_valid_or_single_adj_ineq(), clear_status(), is_adj_ineq_extension(), isl_change_none, and STATUS_VALID.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 2380 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::eq, and eq_status_in().
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 1472 of file isl_coalesce.c.
References isl_basic_map_copy(), isl_basic_map_underlying_set(), isl_basic_set_cow(), isl_basic_set_update_from_tab(), and isl_set_from_basic_set().
Referenced by can_wrap_in_facet(), check_eq_adj_eq(), is_adj_ineq_extension(), and wrap_in_facets().
|
static |
Definition at line 2392 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::ineq, ineq_status_in(), and isl_coalesce_info::tab.
Referenced by coalesce_local_pair_reuse().
|
static |
Definition at line 3622 of file isl_coalesce.c.
References aff, hull, isl_aff_copy(), isl_aff_dim(), isl_aff_floor(), isl_aff_free(), isl_aff_nan_on_domain(), isl_aff_substitute_equalities(), isl_basic_map_dim(), isl_basic_map_equal_div_expr_part(), isl_basic_map_get_ctx(), isl_basic_map_get_local_space(), isl_basic_map_wrap(), isl_basic_set_copy(), isl_basic_set_free(), isl_dim_all, isl_dim_div, isl_local_space_copy(), isl_local_space_free(), isl_local_space_get_div(), isl_local_space_wrap(), and total().
Referenced by check_coalesce_into_eq().
|
static |
Definition at line 2651 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_dim(), isl_basic_map_shift_div(), isl_dim_all, isl_dim_div, isl_stat_error, isl_stat_ok, isl_tab_shift_var(), isl_coalesce_info::tab, and total().
Referenced by normalize_stride_div(), and shift_if_cst_int().
|
static |
Definition at line 2795 of file isl_coalesce.c.
References isl_aff_get_constant_val(), isl_aff_is_cst(), isl_bool_not(), isl_int_clear, isl_int_init, isl_stat_error, isl_stat_ok, isl_val_free(), isl_val_get_num_isl_int(), isl_val_is_int(), isl_val_is_zero(), and shift_div().
Referenced by harmonize_divs_with_hulls().
Definition at line 47 of file isl_coalesce.c.
References isl_ineq_adj_eq, isl_ineq_adj_ineq, isl_ineq_cut, isl_ineq_error, isl_ineq_redundant, isl_ineq_separate, isl_tab_ineq_type(), STATUS_ADJ_EQ, STATUS_ADJ_INEQ, STATUS_CUT, STATUS_ERROR, STATUS_SEPARATE, STATUS_VALID, and type.
Referenced by check_facets(), contains(), eq_status_in(), and ineq_status_in().
|
static |
Definition at line 3134 of file isl_coalesce.c.
References any(), isl_coalesce_info::bmap, copy_ineq(), isl_expanded::cst, fix_constant_divs(), isl_coalesce_info::ineq, isl_basic_map_cow(), isl_basic_map_free(), isl_basic_map_free_inequality(), isl_basic_map_get_ctx(), isl_die, isl_error_internal, isl_stat_error, isl_stat_ok, isl_tab_extend_cons(), isl_tab_extend_vars(), isl_tab_insert_var(), isl_tab_is_constant(), isl_tab_is_redundant(), isl_tab_rollback(), isl_tab_snap(), n, isl_tab::n_con, isl_basic_map::n_eq, isl_tab::n_eq, isl_basic_map::n_ineq, isl_expanded::pos, STATUS_REDUNDANT, isl_coalesce_info::tab, and isl_expanded::val.
Referenced by expand_tab().
|
static |
Definition at line 969 of file isl_coalesce.c.
References any(), isl_coalesce_info::bmap, isl_vec::el, isl_coalesce_info::ineq, isl_basic_map::ineq, is_affected(), isl_alloc_array, isl_basic_map_dim(), isl_basic_map_get_ctx(), isl_dim_all, isl_int_add_ui, isl_int_sub_ui, isl_mat_copy(), isl_mat_free(), isl_mat_sub_alloc6(), isl_mat_variable_compression(), isl_seq_cpy(), isl_stat_error, isl_stat_ok, isl_vec_alloc(), isl_vec_free(), isl_vec_mat_product(), n, isl_mat::n_col, isl_basic_map::n_ineq, not_unique_unit_row(), STATUS_REDUNDANT, total(), and try_tightening().
Referenced by is_relaxed_extension().
|
static |
Definition at line 893 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::ineq, isl_int_add, isl_int_fdiv_r, isl_int_is_one, isl_int_is_zero, isl_int_sub, isl_seq_gcd(), isl_tab_add_ineq(), isl_tab_extend_cons(), isl_vec_cow(), isl_vec_free(), isl_vec_get_ctx(), isl_ctx::normalize_gcd, and isl_coalesce_info::tab.
Referenced by tighten_on_relaxed_facet().
|
static |
Definition at line 1882 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map::eq, isl_wraps::failed, fuse, isl_basic_map::ineq, isl_basic_map_dim(), isl_change_error, isl_change_none, isl_dim_all, isl_seq_cpy(), isl_seq_neg(), isl_tab_snap(), isl_wraps::mat, isl_basic_map::n_eq, isl_basic_map::n_ineq, isl_mat::n_row, isl_mat::row, STATUS_CUT, total(), and wrap_in_facet().
Referenced by wrap_in_facets().
|
static |
Definition at line 1984 of file isl_coalesce.c.
References isl_int_add_ui, isl_int_sub_ui, isl_tab_ineq_type(), and type.
Referenced by all_cut_by_one(), and can_wrap_in_set().
|
static |
Definition at line 4129 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_finalize(), isl_basic_map_free(), isl_basic_map_gauss(), ISL_BASIC_MAP_NO_IMPLICIT, ISL_BASIC_MAP_NO_REDUNDANT, isl_basic_map_simplify(), isl_basic_map_update_from_tab(), ISL_F_SET, isl_map_free(), map, n, and simplify.
Referenced by isl_map_coalesce().
|
static |
Definition at line 1844 of file isl_coalesce.c.
References add_wraps(), isl_tab::empty, isl_int_add_ui, isl_int_sub_ui, isl_stat_error, isl_stat_ok, isl_tab_add_eq(), isl_tab_detect_redundant(), isl_tab_rollback(), isl_wraps::mat, isl_mat::row, and isl_coalesce_info::tab.
Referenced by try_wrap_in_facets().
|
static |
Definition at line 1942 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_basic_map_dim(), isl_basic_map_get_ctx(), isl_change_error, isl_change_none, isl_dim_all, isl_mat_alloc(), isl_set_free(), isl_tab_extend_cons(), isl_wraps::mat, n, isl_basic_map::n_eq, isl_basic_map::n_ineq, set_from_updated_bmap(), total(), try_wrap_in_facets(), wraps_free(), and wraps_init().
Referenced by can_wrap_in_set().
|
static |
Definition at line 1249 of file isl_coalesce.c.
References isl_wraps::bound, isl_int_clear, isl_mat_free(), isl_wraps::mat, and isl_wraps::max.
Referenced by can_wrap_in_facet(), check_eq_adj_eq(), is_adj_ineq_extension(), and wrap_in_facets().
|
static |
Definition at line 1222 of file isl_coalesce.c.
References isl_wraps::bound, isl_wraps::failed, isl_int_init, isl_int_set_si, isl_mat_get_ctx(), isl_options_get_coalesce_bounded_wrapping(), isl_stat_error, isl_stat_ok, isl_wraps::mat, isl_wraps::max, isl_mat::n_row, and wraps_update_max().
Referenced by can_wrap_in_facet(), check_eq_adj_eq(), is_adj_ineq_extension(), and wrap_in_facets().
Definition at line 1258 of file isl_coalesce.c.
References isl_wraps::failed, and isl_stat_ok.
Referenced by add_selected_wraps(), add_selected_wraps_around_facet(), and check_wraps().
|
static |
Definition at line 1182 of file isl_coalesce.c.
References isl_coalesce_info::bmap, isl_coalesce_info::eq, isl_basic_map::eq, isl_coalesce_info::ineq, isl_basic_map::ineq, isl_basic_map_dim(), isl_dim_all, isl_int_abs_gt, isl_int_clear, isl_int_init, isl_int_set, isl_seq_abs_max(), isl_stat_error, isl_stat_ok, isl_wraps::max, isl_basic_map::n_eq, isl_basic_map::n_ineq, STATUS_REDUNDANT, STATUS_VALID, and total().
Referenced by wraps_init().