Polly 20.0.0git
Classes | Macros | Enumerations | Functions
isl_coalesce.c File Reference
#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
}
 

Functions

static int status_in (isl_int *ineq, struct isl_tab *tab)
 
static int * eq_status_in (__isl_keep isl_basic_map *bmap_i, struct isl_tab *tab_j)
 
static int * ineq_status_in (__isl_keep isl_basic_map *bmap_i, struct isl_tab *tab_i, struct isl_tab *tab_j)
 
static int any (int *con, unsigned len, int status)
 
static int find (int *con, unsigned len, int status)
 
static int count (int *con, unsigned len, int status)
 
static int all (int *con, unsigned len, int status)
 
static int any_eq (struct isl_coalesce_info *info, int status)
 
static int any_ineq (struct isl_coalesce_info *info, int status)
 
static int find_eq (struct isl_coalesce_info *info, int status)
 
static int find_ineq (struct isl_coalesce_info *info, int status)
 
static int count_eq (struct isl_coalesce_info *info, int status)
 
static int count_ineq (struct isl_coalesce_info *info, int status)
 
static int all_valid_or_cut (struct isl_coalesce_info *info)
 
static int coalesce_info_set_hull_hash (struct isl_coalesce_info *info)
 
static void clear_coalesce_info (int n, struct isl_coalesce_info *info)
 
static void clear (struct isl_coalesce_info *info)
 
static void drop (struct isl_coalesce_info *info)
 
static void exchange (struct isl_coalesce_info *info1, struct isl_coalesce_info *info2)
 
static enum isl_change invert_change (enum isl_change change)
 
static __isl_give isl_basic_mapadd_valid_constraints (__isl_take isl_basic_map *bmap, struct isl_coalesce_info *info, unsigned len)
 
static int number_of_constraints_increases (int i, int j, struct isl_coalesce_info *info, __isl_keep isl_basic_map *bmap, struct isl_tab *tab)
 
static enum isl_change fuse (int i, int j, struct isl_coalesce_info *info, __isl_keep isl_mat *extra, int detect_equalities, int check_number)
 
static enum isl_change check_facets (int i, int j, struct isl_coalesce_info *info)
 
static isl_bool contains (struct isl_coalesce_info *info, struct isl_tab *tab)
 
static enum isl_change is_adj_ineq_extension_with_wraps (int i, int j, int k, struct isl_coalesce_info *info, __isl_keep isl_mat *extra)
 
static int not_unique_unit_row (__isl_keep isl_mat *T, int row)
 
static isl_bool is_affected (__isl_keep isl_basic_map *bmap, int ineq, int *affected, int total)
 
static __isl_give isl_vectry_tightening (struct isl_coalesce_info *info, int ineq, __isl_take isl_vec *v)
 
static isl_stat tighten_on_relaxed_facet (struct isl_coalesce_info *info, int n, int *relaxed, int l)
 
static enum isl_change extend (int i, int j, int n, int *relax, struct isl_coalesce_info *info)
 
static enum isl_change is_relaxed_extension (int i, int j, int n, int *relax, struct isl_coalesce_info *info)
 
static isl_stat wraps_update_max (struct isl_wraps *wraps, struct isl_coalesce_info *info)
 
static isl_stat wraps_init (struct isl_wraps *wraps, __isl_take isl_mat *mat, struct isl_coalesce_info *info, int i, int j)
 
static void wraps_free (struct isl_wraps *wraps)
 
static isl_stat wraps_mark_failed (struct isl_wraps *wraps)
 
static int allow_wrap (struct isl_wraps *wraps, int row)
 
static int add_wrap (struct isl_wraps *wraps, int w, isl_int *bound, isl_int *ineq, unsigned len, __isl_keep isl_set *set, int negate)
 
static isl_stat add_selected_wraps (struct isl_wraps *wraps, struct isl_coalesce_info *info, isl_int *bound, __isl_keep isl_set *set, int add_valid)
 
static isl_stat add_wraps (struct isl_wraps *wraps, struct isl_coalesce_info *info, isl_int *bound, __isl_keep isl_set *set)
 
static isl_stat check_wraps (struct isl_wraps *wraps, int first, struct isl_tab *tab, int keep)
 
static __isl_give isl_setset_from_updated_bmap (__isl_keep isl_basic_map *bmap, struct isl_tab *tab)
 
static isl_bool has_redundant_cuts (struct isl_coalesce_info *info)
 
static isl_stat add_selected_wraps_around_facet (struct isl_wraps *wraps, struct isl_coalesce_info *info, int k, isl_int *bound, __isl_keep isl_set *set, int add_valid)
 
static isl_stat add_wraps_around_facet (struct isl_wraps *wraps, struct isl_coalesce_info *info, int k, isl_int *bound, __isl_keep isl_set *set)
 
static isl_stat add_valid_wraps_around_facet (struct isl_wraps *wraps, struct isl_coalesce_info *info, int k, isl_int *bound, __isl_keep isl_set *set)
 
static enum isl_change is_adj_ineq_extension (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_adj_ineq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change can_wrap_in_facet (int i, int j, int k, struct isl_coalesce_info *info, int wrap_facet)
 
static isl_stat wrap_in_facet (struct isl_wraps *wraps, int w, struct isl_coalesce_info *info_j, __isl_keep isl_set *set_i, struct isl_tab_undo *snap)
 
static enum isl_change try_wrap_in_facets (int i, int j, struct isl_coalesce_info *info, struct isl_wraps *wraps, __isl_keep isl_set *set_i)
 
static enum isl_change wrap_in_facets (int i, int j, int n, struct isl_coalesce_info *info)
 
static enum isl_ineq_type type_of_relaxed (struct isl_tab *tab, isl_int *ineq)
 
static enum isl_change can_wrap_in_set (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_wrap (int i, int j, struct isl_coalesce_info *info)
 
static isl_bool all_cut_by_one (int i, int j, struct isl_coalesce_info *info, int *list)
 
static enum isl_change check_single_adj_eq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_adj_eq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_ineq_adj_eq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_eq_adj_eq (int i, int j, struct isl_coalesce_info *info)
 
static void init_status (struct isl_coalesce_info *info)
 
static void set_eq_status_in (struct isl_coalesce_info *info, struct isl_tab *tab)
 
static void set_ineq_status_in (struct isl_coalesce_info *info, struct isl_tab *tab)
 
static void clear_status (struct isl_coalesce_info *info)
 
static int all_ineq_valid_or_single_adj_ineq (struct isl_coalesce_info *info)
 
static enum isl_change separating_equality (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change coalesce_local_pair_reuse (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change coalesce_local_pair (int i, int j, struct isl_coalesce_info *info)
 
static isl_stat shift_div (struct isl_coalesce_info *info, int div, isl_int shift)
 
static isl_stat normalize_stride_div (struct isl_coalesce_info *info, int div)
 
static isl_stat harmonize_stride_divs (struct isl_coalesce_info *info1, struct isl_coalesce_info *info2)
 
static isl_stat shift_if_cst_int (struct isl_coalesce_info *info, int div, __isl_keep isl_aff *shift)
 
static isl_stat harmonize_divs_with_hulls (struct isl_coalesce_info *info1, struct isl_coalesce_info *info2, __isl_keep isl_basic_set *eq1, __isl_keep isl_basic_set *eq2)
 
static isl_stat harmonize_divs (struct isl_coalesce_info *info1, struct isl_coalesce_info *info2)
 
static isl_bool same_divs (__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
 
static isl_stat copy_ineq (struct isl_tab *tab, __isl_keep isl_basic_map *bmap)
 
static isl_stat fix_constant_divs (struct isl_coalesce_info *info, int n, struct isl_expanded *expanded)
 
static isl_stat tab_insert_divs (struct isl_coalesce_info *info, int n, struct isl_expanded *expanded, __isl_take isl_basic_map *bmap)
 
static isl_stat expand_tab (struct isl_coalesce_info *info, int *exp, __isl_take isl_basic_map *bmap)
 
static enum isl_change coalesce_expand_tab_divs (__isl_take isl_basic_map *bmap, int i, int j, struct isl_coalesce_info *info, __isl_keep isl_mat *div, int *exp)
 
static enum isl_change coalesce_with_expanded_divs (__isl_keep isl_basic_map *bmap, int i, int j, struct isl_coalesce_info *info, __isl_keep isl_mat *div, int *exp)
 
static enum isl_change coalesce_after_aligning_divs (__isl_keep isl_basic_map *bmap_i, int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change coalesce_subset_with_equalities (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change coalesce_divs (int i, int j, struct isl_coalesce_info *info)
 
static isl_bool has_nested_div (__isl_keep isl_basic_map *bmap)
 
static __isl_give isl_aff_list * set_up_substitutions (__isl_keep isl_basic_map *bmap_i, __isl_keep isl_basic_map *bmap_j, __isl_take isl_basic_map *hull)
 
static isl_stat add_sub_vars (struct isl_coalesce_info *info, __isl_keep isl_aff_list *list, int dim, int extra_var)
 
static isl_stat add_sub_equalities (struct isl_tab *tab, __isl_keep isl_aff_list *list, int dim)
 
static isl_stat add_subs (struct isl_coalesce_info *info, __isl_keep isl_aff_list *list, int dim)
 
static enum isl_change coalesce_with_subs (int i, int j, struct isl_coalesce_info *info, __isl_keep isl_aff_list *list)
 
static enum isl_change check_coalesce_into_eq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change check_coalesce_eq (int i, int j, struct isl_coalesce_info *info)
 
static enum isl_change coalesce_pair (int i, int j, struct isl_coalesce_info *info)
 
static int isl_max (int a, int b)
 
static int coalesce_range (isl_ctx *ctx, struct isl_coalesce_info *info, int start1, int end1, int start2, int end2)
 
static int coalesce (isl_ctx *ctx, int n, struct isl_coalesce_info *info)
 
static __isl_give isl_mapupdate_basic_maps (__isl_take isl_map *map, int n, struct isl_coalesce_info *info)
 
__isl_give isl_mapisl_map_coalesce (__isl_take isl_map *map)
 
__isl_give isl_setisl_set_coalesce (__isl_take isl_set *set)
 

Macro Definition Documentation

◆ STATUS_ADJ_EQ

#define STATUS_ADJ_EQ   5

Definition at line 44 of file isl_coalesce.c.

◆ STATUS_ADJ_INEQ

#define STATUS_ADJ_INEQ   6

Definition at line 45 of file isl_coalesce.c.

◆ STATUS_CUT

#define STATUS_CUT   4

Definition at line 43 of file isl_coalesce.c.

◆ STATUS_ERROR

#define STATUS_ERROR   -1

Definition at line 39 of file isl_coalesce.c.

◆ STATUS_REDUNDANT

#define STATUS_REDUNDANT   1

Definition at line 40 of file isl_coalesce.c.

◆ STATUS_SEPARATE

#define STATUS_SEPARATE   3

Definition at line 42 of file isl_coalesce.c.

◆ STATUS_VALID

#define STATUS_VALID   2

Definition at line 41 of file isl_coalesce.c.

Enumeration Type Documentation

◆ isl_change

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.

Function Documentation

◆ add_selected_wraps()

static isl_stat add_selected_wraps ( struct isl_wraps wraps,
struct isl_coalesce_info info,
isl_int bound,
__isl_keep isl_set set,
int  add_valid 
)
static

◆ add_selected_wraps_around_facet()

static isl_stat add_selected_wraps_around_facet ( struct isl_wraps wraps,
struct isl_coalesce_info info,
int  k,
isl_int bound,
__isl_keep isl_set set,
int  add_valid 
)
static

◆ add_sub_equalities()

static isl_stat add_sub_equalities ( struct isl_tab tab,
__isl_keep isl_aff_list *  list,
int  dim 
)
static

◆ add_sub_vars()

static isl_stat add_sub_vars ( struct isl_coalesce_info info,
__isl_keep isl_aff_list *  list,
int  dim,
int  extra_var 
)
static

◆ add_subs()

static isl_stat add_subs ( struct isl_coalesce_info info,
__isl_keep isl_aff_list *  list,
int  dim 
)
static

◆ add_valid_constraints()

static __isl_give isl_basic_map * add_valid_constraints ( __isl_take isl_basic_map bmap,
struct isl_coalesce_info info,
unsigned  len 
)
static

◆ add_valid_wraps_around_facet()

static isl_stat add_valid_wraps_around_facet ( struct isl_wraps wraps,
struct isl_coalesce_info info,
int  k,
isl_int bound,
__isl_keep isl_set set 
)
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().

◆ add_wrap()

static int add_wrap ( struct isl_wraps wraps,
int  w,
isl_int bound,
isl_int ineq,
unsigned  len,
__isl_keep isl_set set,
int  negate 
)
static

◆ add_wraps()

static isl_stat add_wraps ( struct isl_wraps wraps,
struct isl_coalesce_info info,
isl_int bound,
__isl_keep isl_set set 
)
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().

◆ add_wraps_around_facet()

static isl_stat add_wraps_around_facet ( struct isl_wraps wraps,
struct isl_coalesce_info info,
int  k,
isl_int bound,
__isl_keep isl_set set 
)
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().

◆ all()

static int all ( int *  con,
unsigned  len,
int  status 
)
static

◆ all_cut_by_one()

static isl_bool all_cut_by_one ( int  i,
int  j,
struct isl_coalesce_info info,
int *  list 
)
static

◆ all_ineq_valid_or_single_adj_ineq()

static int all_ineq_valid_or_single_adj_ineq ( struct isl_coalesce_info info)
static

◆ all_valid_or_cut()

static int all_valid_or_cut ( struct isl_coalesce_info info)
static

◆ allow_wrap()

static int allow_wrap ( struct isl_wraps wraps,
int  row 
)
static

◆ any()

static int any ( int *  con,
unsigned  len,
int  status 
)
static

Definition at line 129 of file isl_coalesce.c.

Referenced by any_eq(), any_ineq(), tab_insert_divs(), and tighten_on_relaxed_facet().

◆ any_eq()

static int any_eq ( struct isl_coalesce_info info,
int  status 
)
static

◆ any_ineq()

static int any_ineq ( struct isl_coalesce_info info,
int  status 
)
static

◆ can_wrap_in_facet()

static enum isl_change can_wrap_in_facet ( int  i,
int  j,
int  k,
struct isl_coalesce_info info,
int  wrap_facet 
)
static

◆ can_wrap_in_set()

static enum isl_change can_wrap_in_set ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_adj_eq()

static enum isl_change check_adj_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_adj_ineq()

static enum isl_change check_adj_ineq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_coalesce_eq()

static enum isl_change check_coalesce_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_coalesce_into_eq()

static enum isl_change check_coalesce_into_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_eq_adj_eq()

static enum isl_change check_eq_adj_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_facets()

static enum isl_change check_facets ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_ineq_adj_eq()

static enum isl_change check_ineq_adj_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_single_adj_eq()

static enum isl_change check_single_adj_eq ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ check_wrap()

static enum isl_change check_wrap ( int  i,
int  j,
struct isl_coalesce_info info 
)
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().

◆ check_wraps()

static isl_stat check_wraps ( struct isl_wraps wraps,
int  first,
struct isl_tab tab,
int  keep 
)
static

◆ clear()

static void clear ( struct isl_coalesce_info info)
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.

Referenced by drop(), and fuse().

◆ clear_coalesce_info()

static void clear_coalesce_info ( int  n,
struct isl_coalesce_info info 
)
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().

◆ clear_status()

static void clear_status ( struct isl_coalesce_info info)
static

◆ coalesce()

static int coalesce ( isl_ctx ctx,
int  n,
struct isl_coalesce_info info 
)
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().

◆ coalesce_after_aligning_divs()

static enum isl_change coalesce_after_aligning_divs ( __isl_keep isl_basic_map bmap_i,
int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ coalesce_divs()

static enum isl_change coalesce_divs ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ coalesce_expand_tab_divs()

static enum isl_change coalesce_expand_tab_divs ( __isl_take isl_basic_map bmap,
int  i,
int  j,
struct isl_coalesce_info info,
__isl_keep isl_mat div,
int *  exp 
)
static

◆ coalesce_info_set_hull_hash()

static int coalesce_info_set_hull_hash ( struct isl_coalesce_info info)
static

◆ coalesce_local_pair()

static enum isl_change coalesce_local_pair ( int  i,
int  j,
struct isl_coalesce_info info 
)
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().

◆ coalesce_local_pair_reuse()

static enum isl_change coalesce_local_pair_reuse ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ coalesce_pair()

static enum isl_change coalesce_pair ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ coalesce_range()

static int coalesce_range ( isl_ctx ctx,
struct isl_coalesce_info info,
int  start1,
int  end1,
int  start2,
int  end2 
)
static

◆ coalesce_subset_with_equalities()

static enum isl_change coalesce_subset_with_equalities ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ coalesce_with_expanded_divs()

static enum isl_change coalesce_with_expanded_divs ( __isl_keep isl_basic_map bmap,
int  i,
int  j,
struct isl_coalesce_info info,
__isl_keep isl_mat div,
int *  exp 
)
static

◆ coalesce_with_subs()

static enum isl_change coalesce_with_subs ( int  i,
int  j,
struct isl_coalesce_info info,
__isl_keep isl_aff_list *  list 
)
static

◆ contains()

static isl_bool contains ( struct isl_coalesce_info info,
struct isl_tab tab 
)
static

◆ copy_ineq()

static isl_stat copy_ineq ( struct isl_tab tab,
__isl_keep isl_basic_map bmap 
)
static

◆ count()

static int count ( int *  con,
unsigned  len,
int  status 
)
static

◆ count_eq()

static int count_eq ( struct isl_coalesce_info info,
int  status 
)
static

◆ count_ineq()

static int count_ineq ( struct isl_coalesce_info info,
int  status 
)
static

◆ drop()

static void drop ( struct isl_coalesce_info info)
static

◆ eq_status_in()

static int * eq_status_in ( __isl_keep isl_basic_map bmap_i,
struct isl_tab tab_j 
)
static

◆ exchange()

static void exchange ( struct isl_coalesce_info info1,
struct isl_coalesce_info info2 
)
static

Definition at line 375 of file isl_coalesce.c.

Referenced by extend().

◆ expand_tab()

static isl_stat expand_tab ( struct isl_coalesce_info info,
int *  exp,
__isl_take isl_basic_map bmap 
)
static

◆ extend()

static enum isl_change extend ( int  i,
int  j,
int  n,
int *  relax,
struct isl_coalesce_info info 
)
static

◆ find()

static int find ( int *  con,
unsigned  len,
int  status 
)
static

Definition at line 142 of file isl_coalesce.c.

Referenced by contains(), find_eq(), find_ineq(), and replace().

◆ find_eq()

static int find_eq ( struct isl_coalesce_info info,
int  status 
)
static

◆ find_ineq()

static int find_ineq ( struct isl_coalesce_info info,
int  status 
)
static

◆ fix_constant_divs()

static isl_stat fix_constant_divs ( struct isl_coalesce_info info,
int  n,
struct isl_expanded expanded 
)
static

◆ fuse()

static enum isl_change fuse ( int  i,
int  j,
struct isl_coalesce_info info,
__isl_keep isl_mat extra,
int  detect_equalities,
int  check_number 
)
static

◆ harmonize_divs()

static isl_stat harmonize_divs ( struct isl_coalesce_info info1,
struct isl_coalesce_info info2 
)
static

◆ harmonize_divs_with_hulls()

static isl_stat harmonize_divs_with_hulls ( struct isl_coalesce_info info1,
struct isl_coalesce_info info2,
__isl_keep isl_basic_set eq1,
__isl_keep isl_basic_set eq2 
)
static

◆ harmonize_stride_divs()

static isl_stat harmonize_stride_divs ( struct isl_coalesce_info info1,
struct isl_coalesce_info info2 
)
static

◆ has_nested_div()

static isl_bool has_nested_div ( __isl_keep isl_basic_map bmap)
static

◆ has_redundant_cuts()

static isl_bool has_redundant_cuts ( struct isl_coalesce_info info)
static

◆ ineq_status_in()

static int * ineq_status_in ( __isl_keep isl_basic_map bmap_i,
struct isl_tab tab_i,
struct isl_tab tab_j 
)
static

◆ init_status()

static void init_status ( struct isl_coalesce_info info)
static

◆ invert_change()

static enum isl_change invert_change ( enum isl_change  change)
static

◆ is_adj_ineq_extension()

static enum isl_change is_adj_ineq_extension ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ is_adj_ineq_extension_with_wraps()

static enum isl_change is_adj_ineq_extension_with_wraps ( int  i,
int  j,
int  k,
struct isl_coalesce_info info,
__isl_keep isl_mat extra 
)
static

◆ is_affected()

static isl_bool is_affected ( __isl_keep isl_basic_map bmap,
int  ineq,
int *  affected,
int  total 
)
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().

◆ is_relaxed_extension()

static enum isl_change is_relaxed_extension ( int  i,
int  j,
int  n,
int *  relax,
struct isl_coalesce_info info 
)
static

◆ isl_map_coalesce()

__isl_give isl_map * isl_map_coalesce ( __isl_take isl_map map)

◆ isl_max()

static int isl_max ( int  a,
int  b 
)
static

Definition at line 4035 of file isl_coalesce.c.

References a(), and b().

Referenced by coalesce_range().

◆ isl_set_coalesce()

__isl_give isl_set * isl_set_coalesce ( __isl_take isl_set set)

◆ normalize_stride_div()

static isl_stat normalize_stride_div ( struct isl_coalesce_info info,
int  div 
)
static

◆ not_unique_unit_row()

static int not_unique_unit_row ( __isl_keep isl_mat T,
int  row 
)
static

◆ number_of_constraints_increases()

static int number_of_constraints_increases ( int  i,
int  j,
struct isl_coalesce_info info,
__isl_keep isl_basic_map bmap,
struct isl_tab tab 
)
static

◆ same_divs()

static isl_bool same_divs ( __isl_keep isl_basic_map bmap1,
__isl_keep isl_basic_map bmap2 
)
static

◆ separating_equality()

static enum isl_change separating_equality ( int  i,
int  j,
struct isl_coalesce_info info 
)
static

◆ set_eq_status_in()

static void set_eq_status_in ( struct isl_coalesce_info info,
struct isl_tab tab 
)
static

◆ set_from_updated_bmap()

static __isl_give isl_set * set_from_updated_bmap ( __isl_keep isl_basic_map bmap,
struct isl_tab tab 
)
static

◆ set_ineq_status_in()

static void set_ineq_status_in ( struct isl_coalesce_info info,
struct isl_tab tab 
)
static

◆ set_up_substitutions()

static __isl_give isl_aff_list * set_up_substitutions ( __isl_keep isl_basic_map bmap_i,
__isl_keep isl_basic_map bmap_j,
__isl_take isl_basic_map hull 
)
static

◆ shift_div()

static isl_stat shift_div ( struct isl_coalesce_info info,
int  div,
isl_int  shift 
)
static

◆ shift_if_cst_int()

static isl_stat shift_if_cst_int ( struct isl_coalesce_info info,
int  div,
__isl_keep isl_aff shift 
)
static

◆ status_in()

static int status_in ( isl_int ineq,
struct isl_tab tab 
)
static

◆ tab_insert_divs()

static isl_stat tab_insert_divs ( struct isl_coalesce_info info,
int  n,
struct isl_expanded expanded,
__isl_take isl_basic_map bmap 
)
static

◆ tighten_on_relaxed_facet()

static isl_stat tighten_on_relaxed_facet ( struct isl_coalesce_info info,
int  n,
int *  relaxed,
int  l 
)
static

◆ try_tightening()

static __isl_give isl_vec * try_tightening ( struct isl_coalesce_info info,
int  ineq,
__isl_take isl_vec v 
)
static

◆ try_wrap_in_facets()

static enum isl_change try_wrap_in_facets ( int  i,
int  j,
struct isl_coalesce_info info,
struct isl_wraps wraps,
__isl_keep isl_set set_i 
)
static

◆ type_of_relaxed()

static enum isl_ineq_type type_of_relaxed ( struct isl_tab tab,
isl_int ineq 
)
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().

◆ update_basic_maps()

static __isl_give isl_map * update_basic_maps ( __isl_take isl_map map,
int  n,
struct isl_coalesce_info info 
)
static

◆ wrap_in_facet()

static isl_stat wrap_in_facet ( struct isl_wraps wraps,
int  w,
struct isl_coalesce_info info_j,
__isl_keep isl_set set_i,
struct isl_tab_undo snap 
)
static

◆ wrap_in_facets()

static enum isl_change wrap_in_facets ( int  i,
int  j,
int  n,
struct isl_coalesce_info info 
)
static

◆ wraps_free()

static void wraps_free ( struct isl_wraps wraps)
static

◆ wraps_init()

static isl_stat wraps_init ( struct isl_wraps wraps,
__isl_take isl_mat mat,
struct isl_coalesce_info info,
int  i,
int  j 
)
static

◆ wraps_mark_failed()

static isl_stat wraps_mark_failed ( struct isl_wraps wraps)
static

◆ wraps_update_max()

static isl_stat wraps_update_max ( struct isl_wraps wraps,
struct isl_coalesce_info info 
)
static