Polly 20.0.0git
Classes | Macros | Functions
isl_ilp.c File Reference
#include <isl_ctx_private.h>
#include <isl_map_private.h>
#include <isl/ilp.h>
#include <isl/union_set.h>
#include "isl_sample.h"
#include <isl_seq.h>
#include "isl_equalities.h"
#include <isl_aff_private.h>
#include <isl_local_space_private.h>
#include <isl_mat_private.h>
#include <isl_val_private.h>
#include <isl_vec_private.h>
#include <isl_lp_private.h>
#include <isl_ilp_private.h>
#include "isl_ilp_opt_fn_val_templ.c"
#include "isl_ilp_opt_multi_val_templ.c"
#include "isl_ilp_opt_val_templ.c"

Go to the source code of this file.

Classes

struct  isl_pw_aff_opt_data
 
struct  isl_union_pw_aff_opt_data
 

Macros

#define TYPE   isl_pw_aff
 
#define TYPE   isl_pw_multi_aff
 
#define TYPE   isl_multi_pw_aff
 
#define TYPE   isl_union_pw_aff
 
#define BASE   basic_set
 
#define BASE   set
 

Functions

static __isl_give isl_basic_setunit_box_base_points (__isl_take isl_basic_set *bset)
 
static __isl_give isl_vecinitial_solution (__isl_keep isl_basic_set *bset, isl_int *f)
 
static __isl_give isl_basic_setadd_bounds (__isl_take isl_basic_set *bset, isl_int *f, isl_int l, isl_int u)
 
static __isl_give isl_vecsolve_ilp_search (__isl_keep isl_basic_set *bset, isl_int *f, isl_int *opt, __isl_take isl_vec *sol, isl_int l, isl_int u)
 
static enum isl_lp_result solve_ilp (__isl_keep isl_basic_set *bset, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
 
static enum isl_lp_result solve_ilp_with_eq (__isl_keep isl_basic_set *bset, int max, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
 
enum isl_lp_result isl_basic_set_solve_ilp (__isl_keep isl_basic_set *bset, int max, isl_int *f, isl_int *opt, __isl_give isl_vec **sol_p)
 
static enum isl_lp_result basic_set_opt (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj, isl_int *opt)
 
enum isl_lp_result isl_basic_set_opt (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj, isl_int *opt)
 
static enum isl_lp_result isl_set_opt_aligned (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj, isl_int *opt)
 
enum isl_lp_result isl_set_opt (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj, isl_int *opt)
 
static __isl_give isl_valconvert_lp_result (enum isl_lp_result lp_res, __isl_take isl_val *v, int max)
 
__isl_give isl_valisl_basic_set_opt_val (__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj)
 
__isl_give isl_valisl_basic_set_max_val (__isl_keep isl_basic_set *bset, __isl_keep isl_aff *obj)
 
__isl_give isl_valisl_set_opt_val (__isl_keep isl_set *set, int max, __isl_keep isl_aff *obj)
 
__isl_give isl_valisl_set_min_val (__isl_keep isl_set *set, __isl_keep isl_aff *obj)
 
__isl_give isl_valisl_set_max_val (__isl_keep isl_set *set, __isl_keep isl_aff *obj)
 
static __isl_give isl_valval_opt (__isl_take isl_val *v1, __isl_take isl_val *v2, int max)
 
static isl_stat piece_opt (__isl_take isl_set *set, __isl_take isl_aff *aff, void *user)
 
static __isl_give isl_valisl_pw_aff_opt_val (__isl_take isl_pw_aff *pa, int max)
 
static isl_stat pw_aff_opt (__isl_take isl_pw_aff *pa, void *user)
 
static __isl_give isl_valisl_union_pw_aff_opt_val (__isl_take isl_union_pw_aff *upa, int max)
 
static __isl_give isl_multi_valisl_multi_union_pw_aff_opt_multi_val (__isl_take isl_multi_union_pw_aff *mupa, int max)
 
static __isl_give isl_multi_valisl_union_set_opt_multi_union_pw_aff (__isl_keep isl_union_set *uset, int max, __isl_keep isl_multi_union_pw_aff *obj)
 
__isl_give isl_multi_valisl_union_set_min_multi_union_pw_aff (__isl_keep isl_union_set *uset, __isl_keep isl_multi_union_pw_aff *obj)
 
__isl_give isl_multi_valisl_multi_union_pw_aff_min_multi_val (__isl_take isl_multi_union_pw_aff *mupa)
 
__isl_give isl_multi_valisl_multi_union_pw_aff_max_multi_val (__isl_take isl_multi_union_pw_aff *mupa)
 
__isl_give isl_valisl_basic_set_dim_max_val (__isl_take isl_basic_set *bset, int pos)
 
__isl_give isl_valisl_set_dim_min_val (__isl_take isl_set *set, int pos)
 
__isl_give isl_valisl_set_dim_max_val (__isl_take isl_set *set, int pos)
 

Macro Definition Documentation

◆ BASE [1/2]

#define BASE   basic_set

Definition at line 875 of file isl_ilp.c.

◆ BASE [2/2]

#define BASE   set

Definition at line 875 of file isl_ilp.c.

◆ TYPE [1/4]

#define TYPE   isl_pw_aff

Definition at line 760 of file isl_ilp.c.

◆ TYPE [2/4]

#define TYPE   isl_pw_multi_aff

Definition at line 760 of file isl_ilp.c.

◆ TYPE [3/4]

#define TYPE   isl_multi_pw_aff

Definition at line 760 of file isl_ilp.c.

◆ TYPE [4/4]

#define TYPE   isl_union_pw_aff

Definition at line 760 of file isl_ilp.c.

Function Documentation

◆ add_bounds()

static __isl_give isl_basic_set * add_bounds ( __isl_take isl_basic_set bset,
isl_int f,
isl_int  l,
isl_int  u 
)
static

◆ basic_set_opt()

static enum isl_lp_result basic_set_opt ( __isl_keep isl_basic_set bset,
int  max,
__isl_keep isl_aff obj,
isl_int opt 
)
static

◆ convert_lp_result()

static __isl_give isl_val * convert_lp_result ( enum isl_lp_result  lp_res,
__isl_take isl_val v,
int  max 
)
static

◆ initial_solution()

static __isl_give isl_vec * initial_solution ( __isl_keep isl_basic_set bset,
isl_int f 
)
static

◆ isl_basic_set_dim_max_val()

__isl_give isl_val * isl_basic_set_dim_max_val ( __isl_take isl_basic_set bset,
int  pos 
)

Definition at line 868 of file isl_ilp.c.

References pos().

Referenced by isl::basic_set::dim_max_val().

◆ isl_basic_set_max_val()

__isl_give isl_val * isl_basic_set_max_val ( __isl_keep isl_basic_set bset,
__isl_keep isl_aff obj 
)

Definition at line 562 of file isl_ilp.c.

References isl_basic_set_opt_val(), and obj.

Referenced by compute_size_in_direction(), and test_min_special2().

◆ isl_basic_set_opt()

enum isl_lp_result isl_basic_set_opt ( __isl_keep isl_basic_set bset,
int  max,
__isl_keep isl_aff obj,
isl_int opt 
)

◆ isl_basic_set_opt_val()

__isl_give isl_val * isl_basic_set_opt_val ( __isl_keep isl_basic_set bset,
int  max,
__isl_keep isl_aff obj 
)

◆ isl_basic_set_solve_ilp()

enum isl_lp_result isl_basic_set_solve_ilp ( __isl_keep isl_basic_set bset,
int  max,
isl_int f,
isl_int opt,
__isl_give isl_vec **  sol_p 
)

◆ isl_multi_union_pw_aff_max_multi_val()

__isl_give isl_multi_val * isl_multi_union_pw_aff_max_multi_val ( __isl_take isl_multi_union_pw_aff mupa)

Definition at line 852 of file isl_ilp.c.

References isl_multi_union_pw_aff_opt_multi_val(), and mupa.

◆ isl_multi_union_pw_aff_min_multi_val()

__isl_give isl_multi_val * isl_multi_union_pw_aff_min_multi_val ( __isl_take isl_multi_union_pw_aff mupa)

Definition at line 839 of file isl_ilp.c.

References isl_multi_union_pw_aff_opt_multi_val(), and mupa.

◆ isl_multi_union_pw_aff_opt_multi_val()

static __isl_give isl_multi_val * isl_multi_union_pw_aff_opt_multi_val ( __isl_take isl_multi_union_pw_aff mupa,
int  max 
)
static

◆ isl_pw_aff_opt_val()

static __isl_give isl_val * isl_pw_aff_opt_val ( __isl_take isl_pw_aff pa,
int  max 
)
static

◆ isl_set_dim_max_val()

__isl_give isl_val * isl_set_dim_max_val ( __isl_take isl_set set,
int  pos 
)

Definition at line 895 of file isl_ilp.c.

References pos(), and set.

Referenced by isl::set::dim_max_val().

◆ isl_set_dim_min_val()

__isl_give isl_val * isl_set_dim_min_val ( __isl_take isl_set set,
int  pos 
)

Definition at line 884 of file isl_ilp.c.

References pos(), and set.

Referenced by isl::set::dim_min_val().

◆ isl_set_max_val()

__isl_give isl_val * isl_set_max_val ( __isl_keep isl_set set,
__isl_keep isl_aff obj 
)

Definition at line 612 of file isl_ilp.c.

References isl_set_opt_val(), obj, and set.

Referenced by compute_size(), isl::set::max_val(), and update_unrolling_lower_bound().

◆ isl_set_min_val()

__isl_give isl_val * isl_set_min_val ( __isl_keep isl_set set,
__isl_keep isl_aff obj 
)

Definition at line 600 of file isl_ilp.c.

References isl_set_opt_val(), obj, and set.

Referenced by isl::set::min_val(), steal_from_cst(), and test_min_special().

◆ isl_set_opt()

enum isl_lp_result isl_set_opt ( __isl_keep isl_set set,
int  max,
__isl_keep isl_aff obj,
isl_int opt 
)

◆ isl_set_opt_aligned()

static enum isl_lp_result isl_set_opt_aligned ( __isl_keep isl_set set,
int  max,
__isl_keep isl_aff obj,
isl_int opt 
)
static

◆ isl_set_opt_val()

__isl_give isl_val * isl_set_opt_val ( __isl_keep isl_set set,
int  max,
__isl_keep isl_aff obj 
)

◆ isl_union_pw_aff_opt_val()

static __isl_give isl_val * isl_union_pw_aff_opt_val ( __isl_take isl_union_pw_aff upa,
int  max 
)
static

◆ isl_union_set_min_multi_union_pw_aff()

__isl_give isl_multi_val * isl_union_set_min_multi_union_pw_aff ( __isl_keep isl_union_set uset,
__isl_keep isl_multi_union_pw_aff obj 
)

Definition at line 826 of file isl_ilp.c.

References isl_union_set_opt_multi_union_pw_aff(), and obj.

◆ isl_union_set_opt_multi_union_pw_aff()

static __isl_give isl_multi_val * isl_union_set_opt_multi_union_pw_aff ( __isl_keep isl_union_set uset,
int  max,
__isl_keep isl_multi_union_pw_aff obj 
)
static

◆ piece_opt()

static isl_stat piece_opt ( __isl_take isl_set set,
__isl_take isl_aff aff,
void *  user 
)
static

◆ pw_aff_opt()

static isl_stat pw_aff_opt ( __isl_take isl_pw_aff pa,
void *  user 
)
static

◆ solve_ilp()

static enum isl_lp_result solve_ilp ( __isl_keep isl_basic_set bset,
isl_int f,
isl_int opt,
__isl_give isl_vec **  sol_p 
)
static

◆ solve_ilp_search()

static __isl_give isl_vec * solve_ilp_search ( __isl_keep isl_basic_set bset,
isl_int f,
isl_int opt,
__isl_take isl_vec sol,
isl_int  l,
isl_int  u 
)
static

◆ solve_ilp_with_eq()

static enum isl_lp_result solve_ilp_with_eq ( __isl_keep isl_basic_set bset,
int  max,
isl_int f,
isl_int opt,
__isl_give isl_vec **  sol_p 
)
static

◆ unit_box_base_points()

static __isl_give isl_basic_set * unit_box_base_points ( __isl_take isl_basic_set bset)
static

◆ val_opt()

static __isl_give isl_val * val_opt ( __isl_take isl_val v1,
__isl_take isl_val v2,
int  max 
)
static

Definition at line 622 of file isl_ilp.c.

References isl_val_free(), isl_val_is_nan(), isl_val_max(), and isl_val_min().

Referenced by piece_opt(), and pw_aff_opt().