Polly 20.0.0git
Classes | Macros | Typedefs | Enumerations | Functions | Variables
isl_flow.c File Reference
#include <isl/val.h>
#include <isl/space.h>
#include <isl/set.h>
#include <isl/map.h>
#include <isl/union_set.h>
#include <isl/union_map.h>
#include <isl/flow.h>
#include <isl/schedule_node.h>
#include <isl_sort.h>
#include <isl/stream.h>
#include "print_yaml_field_templ.c"
#include "extract_key.c"
#include "read_in_string_templ.c"

Go to the source code of this file.

Classes

struct  isl_restriction
 
struct  isl_labeled_map
 
struct  isl_access_info
 
struct  isl_flow
 
struct  access_sort_info
 
struct  isl_sched_info
 
struct  isl_union_access_info
 
struct  isl_union_flow
 
struct  isl_compute_flow_data
 
struct  isl_scheduled_access
 
struct  isl_compute_flow_schedule_data
 

Macros

#define BASE   union_map
 
#define KEY   enum isl_ai_key
 
#define KEY_ERROR   isl_ai_key_error
 
#define KEY_END   isl_ai_key_end
 
#define KEY_STR   key_str
 
#define KEY_EXTRACT   extract_key
 
#define KEY_GET   get_key
 
#define BASE   union_map
 

Typedefs

typedef isl_bool(* isl_access_coscheduled) (void *first, void *second)
 

Enumerations

enum  isl_restriction_type { isl_restriction_type_empty , isl_restriction_type_none , isl_restriction_type_input , isl_restriction_type_output }
 
enum  isl_access_type {
  isl_access_sink , isl_access_must_source , isl_access_may_source , isl_access_kill ,
  isl_access_end
}
 
enum  isl_ai_key {
  isl_ai_key_error = -1 , isl_ai_key_sink = isl_access_sink , isl_ai_key_must_source = isl_access_must_source , isl_ai_key_may_source = isl_access_may_source ,
  isl_ai_key_kill = isl_access_kill , isl_ai_key_schedule_map , isl_ai_key_schedule , isl_ai_key_end
}
 

Functions

static __isl_give isl_restrictionisl_restriction_alloc (__isl_take isl_map *source_map, enum isl_restriction_type type)
 
__isl_give isl_restrictionisl_restriction_none (__isl_take isl_map *source_map)
 
__isl_give isl_restrictionisl_restriction_empty (__isl_take isl_map *source_map)
 
__isl_give isl_restrictionisl_restriction_input (__isl_take isl_set *source_restr, __isl_take isl_set *sink_restr)
 
__isl_give isl_restrictionisl_restriction_output (__isl_take isl_set *source_restr)
 
__isl_null isl_restrictionisl_restriction_free (__isl_take isl_restriction *restr)
 
isl_ctxisl_restriction_get_ctx (__isl_keep isl_restriction *restr)
 
__isl_give isl_access_infoisl_access_info_alloc (__isl_take isl_map *sink, void *sink_user, isl_access_level_before fn, int max_source)
 
__isl_null isl_access_infoisl_access_info_free (__isl_take isl_access_info *acc)
 
isl_ctxisl_access_info_get_ctx (__isl_keep isl_access_info *acc)
 
__isl_give isl_access_infoisl_access_info_set_restrict (__isl_take isl_access_info *acc, isl_access_restrict fn, void *user)
 
__isl_give isl_access_infoisl_access_info_add_source (__isl_take isl_access_info *acc, __isl_take isl_map *source, int must, void *source_user)
 
static int access_sort_cmp (const void *p1, const void *p2, void *user)
 
static __isl_give isl_access_infoisl_access_info_sort_sources (__isl_take isl_access_info *acc)
 
static __isl_give isl_spacespace_align_and_join (__isl_take isl_space *left, __isl_take isl_space *right)
 
static __isl_give isl_flowisl_flow_alloc (__isl_keep isl_access_info *acc)
 
isl_stat isl_flow_foreach (__isl_keep isl_flow *deps, isl_stat(*fn)(__isl_take isl_map *dep, int must, void *dep_user, void *user), void *user)
 
__isl_give isl_mapisl_flow_get_no_source (__isl_keep isl_flow *deps, int must)
 
__isl_null isl_flowisl_flow_free (__isl_take isl_flow *deps)
 
isl_ctxisl_flow_get_ctx (__isl_keep isl_flow *deps)
 
static __isl_give isl_mapafter_at_level (__isl_take isl_space *space, int level)
 
static __isl_give isl_maprestricted_partial_lexmax (__isl_keep isl_access_info *acc, __isl_take isl_map *dep, int source, __isl_take isl_set *sink, __isl_give isl_set **empty)
 
static struct isl_maplast_source (struct isl_access_info *acc, struct isl_set *set_C, int j, int level, struct isl_set **empty)
 
static struct isl_maplast_later_source (struct isl_access_info *acc, struct isl_map *old_map, int j, int before_level, int k, int after_level, struct isl_set **empty)
 
static int can_precede_at_level (int shared_level, int target_level)
 
static isl_stat intermediate_sources (__isl_keep isl_access_info *acc, struct isl_map **temp_rel, int j, int sink_level)
 
static __isl_give isl_mapall_sources (__isl_keep isl_access_info *acc, __isl_take isl_set *set_C, int j, int level)
 
static __isl_give isl_mapall_later_sources (__isl_keep isl_access_info *acc, __isl_take isl_map *old_map, int j, int before_level, int k, int after_level)
 
static __isl_give isl_mapall_intermediate_sources (__isl_keep isl_access_info *acc, __isl_take isl_map *map, struct isl_map **must_rel, struct isl_map **may_rel, int j, int sink_level)
 
static __isl_give isl_mapcoscheduled_source (__isl_keep isl_access_info *acc, __isl_keep isl_map *old_map, int pos, int depth)
 
static __isl_give isl_flowhandle_coscheduled (__isl_keep isl_access_info *acc, __isl_keep isl_map **must_rel, __isl_keep isl_map **may_rel, __isl_take isl_flow *flow)
 
static __isl_give isl_flowcompute_mem_based_dependences (__isl_keep isl_access_info *acc)
 
static __isl_give isl_flowcompute_val_based_dependences (__isl_keep isl_access_info *acc)
 
static __isl_give isl_flowaccess_info_compute_flow_core (__isl_take isl_access_info *acc)
 
__isl_give isl_flowisl_access_info_compute_flow (__isl_take isl_access_info *acc)
 
static void sched_info_free (__isl_take struct isl_sched_info *info)
 
static __isl_give struct isl_sched_infosched_info_alloc (__isl_keep isl_map *map)
 
__isl_null isl_union_access_infoisl_union_access_info_free (__isl_take isl_union_access_info *access)
 
isl_ctxisl_union_access_info_get_ctx (__isl_keep isl_union_access_info *access)
 
static __isl_give isl_union_access_infoisl_union_access_info_alloc (isl_ctx *ctx)
 
static __isl_give isl_union_access_infoisl_union_access_info_init (__isl_take isl_union_access_info *info)
 
__isl_give isl_union_access_infoisl_union_access_info_from_sink (__isl_take isl_union_map *sink)
 
static __isl_give isl_union_access_infoisl_union_access_info_set (__isl_take isl_union_access_info *info, enum isl_access_type type, __isl_take isl_union_map *access)
 
__isl_give isl_union_access_infoisl_union_access_info_set_must_source (__isl_take isl_union_access_info *access, __isl_take isl_union_map *must_source)
 
__isl_give isl_union_access_infoisl_union_access_info_set_may_source (__isl_take isl_union_access_info *access, __isl_take isl_union_map *may_source)
 
__isl_give isl_union_access_infoisl_union_access_info_set_kill (__isl_take isl_union_access_info *info, __isl_take isl_union_map *kill)
 
static __isl_give isl_union_mapisl_union_access_info_get (__isl_keep isl_union_access_info *info, enum isl_access_type type)
 
__isl_give isl_union_mapisl_union_access_info_get_must_source (__isl_keep isl_union_access_info *info)
 
__isl_give isl_union_mapisl_union_access_info_get_may_source (__isl_keep isl_union_access_info *info)
 
__isl_give isl_union_mapisl_union_access_info_get_kill (__isl_keep isl_union_access_info *info)
 
static isl_bool isl_union_access_has_kill (__isl_keep isl_union_access_info *info)
 
__isl_give isl_union_access_infoisl_union_access_info_set_schedule (__isl_take isl_union_access_info *access, __isl_take isl_schedule *schedule)
 
__isl_give isl_union_access_infoisl_union_access_info_set_schedule_map (__isl_take isl_union_access_info *access, __isl_take isl_union_map *schedule_map)
 
__isl_give isl_union_access_infoisl_union_access_info_copy (__isl_keep isl_union_access_info *access)
 
static __isl_give isl_printerprint_access_field (__isl_take isl_printer *p, __isl_keep isl_union_access_info *info, enum isl_access_type type)
 
__isl_give isl_printerisl_printer_print_union_access_info (__isl_take isl_printer *p, __isl_keep isl_union_access_info *access)
 
__isl_give char * isl_union_access_info_to_str (__isl_keep isl_union_access_info *access)
 
__isl_give isl_union_access_infoisl_stream_read_union_access_info (isl_stream *s)
 
__isl_give isl_union_access_infoisl_union_access_info_read_from_file (isl_ctx *ctx, FILE *input)
 
static __isl_give isl_union_access_infoisl_union_access_info_align_params (__isl_take isl_union_access_info *access)
 
static __isl_give isl_union_access_infoisl_union_access_info_introduce_schedule (__isl_take isl_union_access_info *access)
 
isl_ctxisl_union_flow_get_ctx (__isl_keep isl_union_flow *flow)
 
__isl_null isl_union_flowisl_union_flow_free (__isl_take isl_union_flow *flow)
 
void isl_union_flow_dump (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_full_must_dependence (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_full_may_dependence (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_must_dependence (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_may_dependence (__isl_keep isl_union_flow *flow)
 
static __isl_give isl_union_mapisl_union_flow_get_non_must_dependence (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_must_no_source (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_mapisl_union_flow_get_may_no_source (__isl_keep isl_union_flow *flow)
 
static __isl_give isl_union_mapisl_union_flow_get_non_must_no_source (__isl_keep isl_union_flow *flow)
 
static __isl_give isl_union_flowisl_union_flow_alloc (__isl_take isl_space *space)
 
__isl_give isl_union_flowisl_union_flow_copy (__isl_keep isl_union_flow *flow)
 
static __isl_give isl_union_flowisl_union_flow_drop_schedule (__isl_take isl_union_flow *flow)
 
static isl_stat count_matching_array (__isl_take isl_map *map, void *user)
 
static isl_stat collect_matching_array (__isl_take isl_map *map, void *user)
 
static int before (void *first, void *second)
 
static isl_bool coscheduled (void *first, void *second)
 
static isl_stat compute_flow (__isl_take isl_map *map, void *user)
 
static __isl_give isl_union_access_infoisl_union_access_info_add_kill_to_must_source (__isl_take isl_union_access_info *info)
 
static __isl_give isl_union_flowisl_union_flow_drop_kill_source (__isl_take isl_union_flow *flow, __isl_take isl_union_map *must, __isl_take isl_union_map *may)
 
static __isl_give isl_union_access_infoisl_union_access_info_normalize (__isl_take isl_union_access_info *access)
 
static __isl_give isl_union_flowcompute_flow_union_map (__isl_take isl_union_access_info *access)
 
static void isl_compute_flow_schedule_data_align_params (struct isl_compute_flow_schedule_data *data)
 
static void isl_compute_flow_schedule_data_clear (struct isl_compute_flow_schedule_data *data)
 
static isl_bool count_sink_source (__isl_keep isl_schedule_node *node, void *user)
 
static isl_stat extract_sink_source (__isl_take isl_map *map, void *user)
 
static isl_bool collect_sink_source (__isl_keep isl_schedule_node *node, void *user)
 
static int before_node (void *first, void *second)
 
static isl_bool coscheduled_node (void *first, void *second)
 
static __isl_give isl_access_infoadd_matching_sources (__isl_take isl_access_info *access, struct isl_scheduled_access *sink, struct isl_compute_flow_schedule_data *data)
 
static __isl_give isl_union_flowcompute_single_flow (__isl_take isl_union_flow *uf, struct isl_scheduled_access *sink, struct isl_compute_flow_schedule_data *data)
 
static __isl_give isl_union_flowcompute_flow_schedule (__isl_take isl_union_access_info *access)
 
__isl_give isl_union_flowisl_union_access_info_compute_flow (__isl_take isl_union_access_info *access)
 
__isl_give isl_printerisl_printer_print_union_flow (__isl_take isl_printer *p, __isl_keep isl_union_flow *flow)
 
__isl_give char * isl_union_flow_to_str (__isl_keep isl_union_flow *flow)
 
int isl_union_map_compute_flow (__isl_take isl_union_map *sink, __isl_take isl_union_map *must_source, __isl_take isl_union_map *may_source, __isl_take isl_union_map *schedule, __isl_give isl_union_map **must_dep, __isl_give isl_union_map **may_dep, __isl_give isl_union_map **must_no_source, __isl_give isl_union_map **may_no_source)
 

Variables

static char * key_str []
 

Macro Definition Documentation

◆ BASE [1/2]

#define BASE   union_map

Definition at line 1885 of file isl_flow.c.

◆ BASE [2/2]

#define BASE   union_map

Definition at line 1885 of file isl_flow.c.

◆ KEY

#define KEY   enum isl_ai_key

Definition at line 1871 of file isl_flow.c.

◆ KEY_END

#define KEY_END   isl_ai_key_end

Definition at line 1875 of file isl_flow.c.

◆ KEY_ERROR

#define KEY_ERROR   isl_ai_key_error

Definition at line 1873 of file isl_flow.c.

◆ KEY_EXTRACT

#define KEY_EXTRACT   extract_key

Definition at line 1879 of file isl_flow.c.

◆ KEY_GET

#define KEY_GET   get_key

Definition at line 1881 of file isl_flow.c.

◆ KEY_STR

#define KEY_STR   key_str

Definition at line 1877 of file isl_flow.c.

Typedef Documentation

◆ isl_access_coscheduled

typedef isl_bool(* isl_access_coscheduled) (void *first, void *second)

Definition at line 165 of file isl_flow.c.

Enumeration Type Documentation

◆ isl_access_type

Enumerator
isl_access_sink 
isl_access_must_source 
isl_access_may_source 
isl_access_kill 
isl_access_end 

Definition at line 1481 of file isl_flow.c.

◆ isl_ai_key

enum isl_ai_key
Enumerator
isl_ai_key_error 
isl_ai_key_sink 
isl_ai_key_must_source 
isl_ai_key_may_source 
isl_ai_key_kill 
isl_ai_key_schedule_map 
isl_ai_key_schedule 
isl_ai_key_end 

Definition at line 1777 of file isl_flow.c.

◆ isl_restriction_type

Enumerator
isl_restriction_type_empty 
isl_restriction_type_none 
isl_restriction_type_input 
isl_restriction_type_output 

Definition at line 30 of file isl_flow.c.

Function Documentation

◆ access_info_compute_flow_core()

static __isl_give isl_flow * access_info_compute_flow_core ( __isl_take isl_access_info acc)
static

◆ access_sort_cmp()

static int access_sort_cmp ( const void *  p1,
const void *  p2,
void *  user 
)
static

◆ add_matching_sources()

static __isl_give isl_access_info * add_matching_sources ( __isl_take isl_access_info access,
struct isl_scheduled_access sink,
struct isl_compute_flow_schedule_data data 
)
static

◆ after_at_level()

static __isl_give isl_map * after_at_level ( __isl_take isl_space space,
int  level 
)
static

◆ all_intermediate_sources()

static __isl_give isl_map * all_intermediate_sources ( __isl_keep isl_access_info acc,
__isl_take isl_map map,
struct isl_map **  must_rel,
struct isl_map **  may_rel,
int  j,
int  sink_level 
)
static

◆ all_later_sources()

static __isl_give isl_map * all_later_sources ( __isl_keep isl_access_info acc,
__isl_take isl_map old_map,
int  j,
int  before_level,
int  k,
int  after_level 
)
static

◆ all_sources()

static __isl_give isl_map * all_sources ( __isl_keep isl_access_info acc,
__isl_take isl_set set_C,
int  j,
int  level 
)
static

◆ before()

static int before ( void *  first,
void *  second 
)
static

◆ before_node()

static int before_node ( void *  first,
void *  second 
)
static

◆ can_precede_at_level()

static int can_precede_at_level ( int  shared_level,
int  target_level 
)
static

◆ collect_matching_array()

static isl_stat collect_matching_array ( __isl_take isl_map map,
void *  user 
)
static

◆ collect_sink_source()

static isl_bool collect_sink_source ( __isl_keep isl_schedule_node node,
void *  user 
)
static

◆ compute_flow()

static isl_stat compute_flow ( __isl_take isl_map map,
void *  user 
)
static

◆ compute_flow_schedule()

static __isl_give isl_union_flow * compute_flow_schedule ( __isl_take isl_union_access_info access)
static

◆ compute_flow_union_map()

static __isl_give isl_union_flow * compute_flow_union_map ( __isl_take isl_union_access_info access)
static

◆ compute_mem_based_dependences()

static __isl_give isl_flow * compute_mem_based_dependences ( __isl_keep isl_access_info acc)
static

◆ compute_single_flow()

static __isl_give isl_union_flow * compute_single_flow ( __isl_take isl_union_flow uf,
struct isl_scheduled_access sink,
struct isl_compute_flow_schedule_data data 
)
static

◆ compute_val_based_dependences()

static __isl_give isl_flow * compute_val_based_dependences ( __isl_keep isl_access_info acc)
static

◆ coscheduled()

static isl_bool coscheduled ( void *  first,
void *  second 
)
static

◆ coscheduled_node()

static isl_bool coscheduled_node ( void *  first,
void *  second 
)
static

Definition at line 3008 of file isl_flow.c.

References isl_bool_ok().

Referenced by compute_single_flow().

◆ coscheduled_source()

static __isl_give isl_map * coscheduled_source ( __isl_keep isl_access_info acc,
__isl_keep isl_map old_map,
int  pos,
int  depth 
)
static

◆ count_matching_array()

static isl_stat count_matching_array ( __isl_take isl_map map,
void *  user 
)
static

◆ count_sink_source()

static isl_bool count_sink_source ( __isl_keep isl_schedule_node node,
void *  user 
)
static

◆ extract_sink_source()

static isl_stat extract_sink_source ( __isl_take isl_map map,
void *  user 
)
static

◆ handle_coscheduled()

static __isl_give isl_flow * handle_coscheduled ( __isl_keep isl_access_info acc,
__isl_keep isl_map **  must_rel,
__isl_keep isl_map **  may_rel,
__isl_take isl_flow flow 
)
static

◆ intermediate_sources()

static isl_stat intermediate_sources ( __isl_keep isl_access_info acc,
struct isl_map **  temp_rel,
int  j,
int  sink_level 
)
static

◆ isl_access_info_add_source()

__isl_give isl_access_info * isl_access_info_add_source ( __isl_take isl_access_info acc,
__isl_take isl_map source,
int  must,
void *  source_user 
)

◆ isl_access_info_alloc()

__isl_give isl_access_info * isl_access_info_alloc ( __isl_take isl_map sink,
void *  sink_user,
isl_access_level_before  fn,
int  max_source 
)

◆ isl_access_info_compute_flow()

__isl_give isl_flow * isl_access_info_compute_flow ( __isl_take isl_access_info acc)

◆ isl_access_info_free()

__isl_null isl_access_info * isl_access_info_free ( __isl_take isl_access_info acc)

◆ isl_access_info_get_ctx()

isl_ctx * isl_access_info_get_ctx ( __isl_keep isl_access_info acc)

Definition at line 262 of file isl_flow.c.

References isl_map_get_ctx().

◆ isl_access_info_set_restrict()

__isl_give isl_access_info * isl_access_info_set_restrict ( __isl_take isl_access_info acc,
isl_access_restrict  fn,
void *  user 
)

Definition at line 267 of file isl_flow.c.

References fn, isl_access_info::restrict_fn, and user.

◆ isl_access_info_sort_sources()

static __isl_give isl_access_info * isl_access_info_sort_sources ( __isl_take isl_access_info acc)
static

◆ isl_compute_flow_schedule_data_align_params()

static void isl_compute_flow_schedule_data_align_params ( struct isl_compute_flow_schedule_data data)
static

◆ isl_compute_flow_schedule_data_clear()

static void isl_compute_flow_schedule_data_clear ( struct isl_compute_flow_schedule_data data)
static

◆ isl_flow_alloc()

static __isl_give isl_flow * isl_flow_alloc ( __isl_keep isl_access_info acc)
static

◆ isl_flow_foreach()

isl_stat isl_flow_foreach ( __isl_keep isl_flow deps,
isl_stat(*)(__isl_take isl_map *dep, int must, void *dep_user, void *user fn,
void *  user 
)

Definition at line 488 of file isl_flow.c.

References fn, isl_map_copy(), isl_map_plain_is_empty(), isl_stat_error, isl_stat_ok, and user.

Referenced by test_dep().

◆ isl_flow_free()

__isl_null isl_flow * isl_flow_free ( __isl_take isl_flow deps)

◆ isl_flow_get_ctx()

isl_ctx * isl_flow_get_ctx ( __isl_keep isl_flow deps)

Definition at line 540 of file isl_flow.c.

References isl_set_get_ctx().

◆ isl_flow_get_no_source()

__isl_give isl_map * isl_flow_get_no_source ( __isl_keep isl_flow deps,
int  must 
)

Definition at line 511 of file isl_flow.c.

References isl_set_copy(), and isl_set_unwrap().

Referenced by compute_flow(), and compute_single_flow().

◆ isl_printer_print_union_access_info()

__isl_give isl_printer * isl_printer_print_union_access_info ( __isl_take isl_printer p,
__isl_keep isl_union_access_info access 
)

◆ isl_printer_print_union_flow()

__isl_give isl_printer * isl_printer_print_union_flow ( __isl_take isl_printer p,
__isl_keep isl_union_flow flow 
)

◆ isl_restriction_alloc()

static __isl_give isl_restriction * isl_restriction_alloc ( __isl_take isl_map source_map,
enum isl_restriction_type  type 
)
static

◆ isl_restriction_empty()

__isl_give isl_restriction * isl_restriction_empty ( __isl_take isl_map source_map)

Definition at line 78 of file isl_flow.c.

References isl_restriction_alloc(), and isl_restriction_type_empty.

◆ isl_restriction_free()

__isl_null isl_restriction * isl_restriction_free ( __isl_take isl_restriction restr)

Definition at line 138 of file isl_flow.c.

References isl_set_free().

Referenced by restricted_partial_lexmax().

◆ isl_restriction_get_ctx()

isl_ctx * isl_restriction_get_ctx ( __isl_keep isl_restriction restr)

Definition at line 150 of file isl_flow.c.

References isl_set_get_ctx().

◆ isl_restriction_input()

__isl_give isl_restriction * isl_restriction_input ( __isl_take isl_set source_restr,
__isl_take isl_set sink_restr 
)

◆ isl_restriction_none()

__isl_give isl_restriction * isl_restriction_none ( __isl_take isl_map source_map)

Definition at line 71 of file isl_flow.c.

References isl_restriction_alloc(), and isl_restriction_type_none.

◆ isl_restriction_output()

__isl_give isl_restriction * isl_restriction_output ( __isl_take isl_set source_restr)

◆ isl_stream_read_union_access_info()

__isl_give isl_union_access_info * isl_stream_read_union_access_info ( isl_stream s)

◆ isl_union_access_has_kill()

static isl_bool isl_union_access_has_kill ( __isl_keep isl_union_access_info info)
static

◆ isl_union_access_info_add_kill_to_must_source()

static __isl_give isl_union_access_info * isl_union_access_info_add_kill_to_must_source ( __isl_take isl_union_access_info info)
static

◆ isl_union_access_info_align_params()

static __isl_give isl_union_access_info * isl_union_access_info_align_params ( __isl_take isl_union_access_info access)
static

◆ isl_union_access_info_alloc()

static __isl_give isl_union_access_info * isl_union_access_info_alloc ( isl_ctx ctx)
static

Definition at line 1543 of file isl_flow.c.

References isl_calloc_type.

Referenced by isl_stream_read_union_access_info(), and isl_union_access_info_from_sink().

◆ isl_union_access_info_compute_flow()

__isl_give isl_union_flow * isl_union_access_info_compute_flow ( __isl_take isl_union_access_info access)

◆ isl_union_access_info_copy()

__isl_give isl_union_access_info * isl_union_access_info_copy ( __isl_keep isl_union_access_info access)

◆ isl_union_access_info_free()

__isl_null isl_union_access_info * isl_union_access_info_free ( __isl_take isl_union_access_info access)

◆ isl_union_access_info_from_sink()

__isl_give isl_union_access_info * isl_union_access_info_from_sink ( __isl_take isl_union_map sink)

◆ isl_union_access_info_get()

static __isl_give isl_union_map * isl_union_access_info_get ( __isl_keep isl_union_access_info info,
enum isl_access_type  type 
)
static

◆ isl_union_access_info_get_ctx()

isl_ctx * isl_union_access_info_get_ctx ( __isl_keep isl_union_access_info access)

◆ isl_union_access_info_get_kill()

__isl_give isl_union_map * isl_union_access_info_get_kill ( __isl_keep isl_union_access_info info)

◆ isl_union_access_info_get_may_source()

__isl_give isl_union_map * isl_union_access_info_get_may_source ( __isl_keep isl_union_access_info info)

Definition at line 1676 of file isl_flow.c.

References isl_access_may_source, and isl_union_access_info_get().

Referenced by isl_union_access_info_compute_flow().

◆ isl_union_access_info_get_must_source()

__isl_give isl_union_map * isl_union_access_info_get_must_source ( __isl_keep isl_union_access_info info)

◆ isl_union_access_info_init()

static __isl_give isl_union_access_info * isl_union_access_info_init ( __isl_take isl_union_access_info info)
static

◆ isl_union_access_info_introduce_schedule()

static __isl_give isl_union_access_info * isl_union_access_info_introduce_schedule ( __isl_take isl_union_access_info access)
static

◆ isl_union_access_info_normalize()

static __isl_give isl_union_access_info * isl_union_access_info_normalize ( __isl_take isl_union_access_info access)
static

◆ isl_union_access_info_read_from_file()

__isl_give isl_union_access_info * isl_union_access_info_read_from_file ( isl_ctx ctx,
FILE *  input 
)

Definition at line 1974 of file isl_flow.c.

References isl_stream_free(), isl_stream_new_file(), and isl_stream_read_union_access_info().

Referenced by main().

◆ isl_union_access_info_set()

static __isl_give isl_union_access_info * isl_union_access_info_set ( __isl_take isl_union_access_info info,
enum isl_access_type  type,
__isl_take isl_union_map access 
)
static

◆ isl_union_access_info_set_kill()

__isl_give isl_union_access_info * isl_union_access_info_set_kill ( __isl_take isl_union_access_info info,
__isl_take isl_union_map kill 
)

Definition at line 1650 of file isl_flow.c.

References isl_access_kill, and isl_union_access_info_set().

Referenced by buildFlow(), and isl::union_access_info::set_kill().

◆ isl_union_access_info_set_may_source()

__isl_give isl_union_access_info * isl_union_access_info_set_may_source ( __isl_take isl_union_access_info access,
__isl_take isl_union_map may_source 
)

◆ isl_union_access_info_set_must_source()

__isl_give isl_union_access_info * isl_union_access_info_set_must_source ( __isl_take isl_union_access_info access,
__isl_take isl_union_map must_source 
)

◆ isl_union_access_info_set_schedule()

__isl_give isl_union_access_info * isl_union_access_info_set_schedule ( __isl_take isl_union_access_info access,
__isl_take isl_schedule schedule 
)

◆ isl_union_access_info_set_schedule_map()

__isl_give isl_union_access_info * isl_union_access_info_set_schedule_map ( __isl_take isl_union_access_info access,
__isl_take isl_union_map schedule_map 
)

◆ isl_union_access_info_to_str()

__isl_give char * isl_union_access_info_to_str ( __isl_keep isl_union_access_info access)

◆ isl_union_flow_alloc()

static __isl_give isl_union_flow * isl_union_flow_alloc ( __isl_take isl_space space)
static

◆ isl_union_flow_copy()

__isl_give isl_union_flow * isl_union_flow_copy ( __isl_keep isl_union_flow flow)

◆ isl_union_flow_drop_kill_source()

static __isl_give isl_union_flow * isl_union_flow_drop_kill_source ( __isl_take isl_union_flow flow,
__isl_take isl_union_map must,
__isl_take isl_union_map may 
)
static

◆ isl_union_flow_drop_schedule()

static __isl_give isl_union_flow * isl_union_flow_drop_schedule ( __isl_take isl_union_flow flow)
static

◆ isl_union_flow_dump()

void isl_union_flow_dump ( __isl_keep isl_union_flow flow)

Definition at line 2120 of file isl_flow.c.

References flow, and isl_union_map_dump().

◆ isl_union_flow_free()

__isl_null isl_union_flow * isl_union_flow_free ( __isl_take isl_union_flow flow)

◆ isl_union_flow_get_ctx()

isl_ctx * isl_union_flow_get_ctx ( __isl_keep isl_union_flow flow)

Definition at line 2101 of file isl_flow.c.

References flow, and isl_union_map_get_ctx().

Referenced by isl::union_flow::ctx(), and isl_union_flow_to_str().

◆ isl_union_flow_get_full_may_dependence()

__isl_give isl_union_map * isl_union_flow_get_full_may_dependence ( __isl_keep isl_union_flow flow)

◆ isl_union_flow_get_full_must_dependence()

__isl_give isl_union_map * isl_union_flow_get_full_must_dependence ( __isl_keep isl_union_flow flow)

Definition at line 2137 of file isl_flow.c.

References flow, and isl_union_map_copy().

Referenced by isl::union_flow::full_must_dependence(), and isl_printer_print_union_flow().

◆ isl_union_flow_get_may_dependence()

__isl_give isl_union_map * isl_union_flow_get_may_dependence ( __isl_keep isl_union_flow flow)

◆ isl_union_flow_get_may_no_source()

__isl_give isl_union_map * isl_union_flow_get_may_no_source ( __isl_keep isl_union_flow flow)

◆ isl_union_flow_get_must_dependence()

__isl_give isl_union_map * isl_union_flow_get_must_dependence ( __isl_keep isl_union_flow flow)

◆ isl_union_flow_get_must_no_source()

__isl_give isl_union_map * isl_union_flow_get_must_no_source ( __isl_keep isl_union_flow flow)

Definition at line 2198 of file isl_flow.c.

References flow, and isl_union_map_copy().

Referenced by isl_union_map_compute_flow(), and isl::union_flow::must_no_source().

◆ isl_union_flow_get_non_must_dependence()

static __isl_give isl_union_map * isl_union_flow_get_non_must_dependence ( __isl_keep isl_union_flow flow)
static

Definition at line 2187 of file isl_flow.c.

References flow, and isl_union_map_copy().

Referenced by isl_union_map_compute_flow().

◆ isl_union_flow_get_non_must_no_source()

static __isl_give isl_union_map * isl_union_flow_get_non_must_no_source ( __isl_keep isl_union_flow flow)
static

Definition at line 2222 of file isl_flow.c.

References flow, and isl_union_map_copy().

Referenced by isl_union_map_compute_flow().

◆ isl_union_flow_to_str()

__isl_give char * isl_union_flow_to_str ( __isl_keep isl_union_flow flow)

◆ isl_union_map_compute_flow()

int isl_union_map_compute_flow ( __isl_take isl_union_map sink,
__isl_take isl_union_map must_source,
__isl_take isl_union_map may_source,
__isl_take isl_union_map schedule,
__isl_give isl_union_map **  must_dep,
__isl_give isl_union_map **  may_dep,
__isl_give isl_union_map **  must_no_source,
__isl_give isl_union_map **  may_no_source 
)

◆ last_later_source()

static struct isl_map * last_later_source ( struct isl_access_info acc,
struct isl_map old_map,
int  j,
int  before_level,
int  k,
int  after_level,
struct isl_set **  empty 
)
static

◆ last_source()

static struct isl_map * last_source ( struct isl_access_info acc,
struct isl_set set_C,
int  j,
int  level,
struct isl_set **  empty 
)
static

◆ print_access_field()

static __isl_give isl_printer * print_access_field ( __isl_take isl_printer p,
__isl_keep isl_union_access_info info,
enum isl_access_type  type 
)
static

◆ restricted_partial_lexmax()

static __isl_give isl_map * restricted_partial_lexmax ( __isl_keep isl_access_info acc,
__isl_take isl_map dep,
int  source,
__isl_take isl_set sink,
__isl_give isl_set **  empty 
)
static

◆ sched_info_alloc()

static __isl_give struct isl_sched_info * sched_info_alloc ( __isl_keep isl_map map)
static

◆ sched_info_free()

static void sched_info_free ( __isl_take struct isl_sched_info info)
static

Definition at line 1406 of file isl_flow.c.

References isl_vec_free().

Referenced by compute_flow(), and sched_info_alloc().

◆ space_align_and_join()

static __isl_give isl_space * space_align_and_join ( __isl_take isl_space left,
__isl_take isl_space right 
)
static

Variable Documentation

◆ key_str

char* key_str[]
static
Initial value:
= {
[isl_ai_key_sink] = "sink",
[isl_ai_key_must_source] = "must_source",
[isl_ai_key_may_source] = "may_source",
[isl_ai_key_kill] = "kill",
[isl_ai_key_schedule_map] = "schedule_map",
[isl_ai_key_schedule] = "schedule",
}
@ isl_ai_key_may_source
Definition: isl_flow.c:1781
@ isl_ai_key_schedule
Definition: isl_flow.c:1784
@ isl_ai_key_sink
Definition: isl_flow.c:1779
@ isl_ai_key_kill
Definition: isl_flow.c:1782
@ isl_ai_key_must_source
Definition: isl_flow.c:1780
@ isl_ai_key_schedule_map
Definition: isl_flow.c:1783

Definition at line 1791 of file isl_flow.c.

Referenced by isl_printer_print_union_access_info(), and print_access_field().