Polly 22.0.0git
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

typedef struct isl_access_info 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

typedef struct isl_restriction isl_restriction

Definition at line 24 of file flow.h.

◆ isl_union_access_info

struct __isl_export isl_union_access_info

Definition at line 71 of file flow.h.

◆ isl_union_flow

struct __isl_export isl_union_flow

Definition at line 73 of file flow.h.

Function Documentation

◆ isl_access_info_add_source()

◆ isl_access_info_alloc()

◆ isl_access_info_compute_flow()

◆ isl_access_info_free()

◆ 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_keep, and 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 __isl_give, __isl_take, fn, isl_access_info::restrict_fn, and user.

◆ isl_flow_foreach()

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 )

Definition at line 488 of file isl_flow.c.

References __isl_keep, __isl_take, 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_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_keep, and 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_give, __isl_keep, isl_set_copy(), and isl_set_unwrap().

Referenced by compute_flow(), and compute_single_flow().

◆ isl_printer_print_union_access_info()

◆ isl_printer_print_union_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_give, __isl_take, 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_null, __isl_take, and 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_keep, and isl_set_get_ctx().

◆ isl_restriction_input()

◆ 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_give, __isl_take, isl_restriction_alloc(), and isl_restriction_type_none.

◆ isl_restriction_output()

◆ isl_union_access_info_compute_flow()

◆ isl_union_access_info_copy()

◆ isl_union_access_info_free()

◆ isl_union_access_info_from_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_give, isl_stream_free(), isl_stream_new_file(), and isl_stream_read_union_access_info().

Referenced by main().

◆ isl_union_access_info_set_kill()

◆ isl_union_access_info_set_may_source()

◆ isl_union_access_info_set_must_source()

◆ isl_union_access_info_set_schedule()

◆ isl_union_access_info_set_schedule_map()

◆ isl_union_access_info_to_str()

◆ isl_union_flow_copy()

◆ isl_union_flow_free()

◆ 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 __isl_keep, 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_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)

◆ isl_union_flow_get_may_dependence()

◆ isl_union_flow_get_may_no_source()

◆ isl_union_flow_get_must_dependence()

◆ 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)

◆ isl_union_flow_to_str()

◆ isl_union_map_compute_flow()