Polly 19.0.0git
Typedefs | Functions
flow.h File Reference
#include <stdio.h>
#include <isl/set_type.h>
#include <isl/map_type.h>
#include <isl/union_set_type.h>
#include <isl/union_map_type.h>
#include <isl/schedule.h>
#include <isl/printer.h>

Go to the source code of this file.

Typedefs

typedef int(* isl_access_level_before) (void *first, void *second)
 
typedef struct isl_restriction isl_restriction
 
typedef __isl_give isl_restriction *(* isl_access_restrict) (__isl_keep isl_map *source_map, __isl_keep isl_set *sink, void *source_user, void *user)
 
typedef struct isl_access_info isl_access_info
 
typedef struct isl_flow isl_flow
 
typedef struct isl_union_access_info isl_union_access_info
 
typedef struct isl_union_flow isl_union_flow
 

Functions

__isl_null isl_restrictionisl_restriction_free (__isl_take isl_restriction *restr)
 
__isl_give isl_restrictionisl_restriction_empty (__isl_take isl_map *source_map)
 
__isl_give isl_restrictionisl_restriction_none (__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_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_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)
 
__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_flowisl_access_info_compute_flow (__isl_take 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)
 
__isl_constructor __isl_give isl_union_access_infoisl_union_access_info_from_sink (__isl_take isl_union_map *sink)
 
__isl_export __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_export __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_export __isl_give isl_union_access_infoisl_union_access_info_set_kill (__isl_take isl_union_access_info *access, __isl_take isl_union_map *kill)
 
__isl_export __isl_give isl_union_access_infoisl_union_access_info_set_schedule (__isl_take isl_union_access_info *access, __isl_take isl_schedule *schedule)
 
__isl_export __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)
 
__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)
 
__isl_give isl_union_access_infoisl_union_access_info_read_from_file (isl_ctx *ctx, FILE *input)
 
__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_export __isl_give isl_union_flowisl_union_access_info_compute_flow (__isl_take isl_union_access_info *access)
 
isl_ctxisl_union_flow_get_ctx (__isl_keep isl_union_flow *flow)
 
__isl_give isl_union_flowisl_union_flow_copy (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_must_dependence (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_may_dependence (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_full_must_dependence (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_full_may_dependence (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_must_no_source (__isl_keep isl_union_flow *flow)
 
__isl_export __isl_give isl_union_mapisl_union_flow_get_may_no_source (__isl_keep isl_union_flow *flow)
 
__isl_null isl_union_flowisl_union_flow_free (__isl_take isl_union_flow *flow)
 
__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)
 

Typedef Documentation

◆ isl_access_info

Definition at line 44 of file flow.h.

◆ isl_access_level_before

typedef int(* isl_access_level_before) (void *first, void *second)

Definition at line 21 of file flow.h.

◆ isl_access_restrict

typedef __isl_give isl_restriction *(* isl_access_restrict) (__isl_keep isl_map *source_map, __isl_keep isl_set *sink, void *source_user, void *user)

Definition at line 39 of file flow.h.

◆ isl_flow

typedef struct isl_flow isl_flow

Definition at line 46 of file flow.h.

◆ isl_restriction

Definition at line 24 of file flow.h.

◆ isl_union_access_info

Definition at line 71 of file flow.h.

◆ isl_union_flow

Definition at line 73 of file flow.h.

Function Documentation

◆ 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_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_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_union_access_info_compute_flow()

__isl_export __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_constructor __isl_give isl_union_access_info * isl_union_access_info_from_sink ( __isl_take isl_union_map sink)

◆ 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_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_kill()

__isl_export __isl_give isl_union_access_info * isl_union_access_info_set_kill ( __isl_take isl_union_access_info access,
__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_export __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_export __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_export __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_export __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_copy()

__isl_give isl_union_flow * isl_union_flow_copy ( __isl_keep isl_union_flow flow)

◆ 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_export __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_export __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_export __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_export __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_export __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_export __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_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 
)