Polly 20.0.0git
|
#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 |
typedef struct isl_access_info isl_access_info |
typedef int(* isl_access_level_before) (void *first, void *second) |
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_restriction isl_restriction |
struct __isl_export isl_union_flow |
__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 | ||
) |
Definition at line 283 of file isl_flow.c.
References isl_labeled_map::data, isl_access_info_free(), isl_assert, isl_map_free(), isl_map_get_ctx(), and isl_access_info::source.
Referenced by add_matching_sources(), collect_matching_array(), and test_dep().
__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 | ||
) |
Definition at line 214 of file isl_flow.c.
References isl_labeled_map::data, fn, isl_assert, isl_calloc, isl_map_free(), isl_map_get_ctx(), isl_access_info::level_before, isl_labeled_map::map, isl_access_info::max_source, isl_access_info::n_may, isl_access_info::n_must, and isl_access_info::sink.
Referenced by compute_flow(), compute_single_flow(), and test_dep().
__isl_give isl_flow * isl_access_info_compute_flow | ( | __isl_take isl_access_info * | acc | ) |
Definition at line 1371 of file isl_flow.c.
References access_info_compute_flow_core(), isl_flow_free(), isl_map_copy(), isl_map_domain_map(), isl_map_range_factor_domain(), and res.
Referenced by test_dep().
__isl_null isl_access_info * isl_access_info_free | ( | __isl_take isl_access_info * | acc | ) |
Definition at line 247 of file isl_flow.c.
References isl_map_free().
Referenced by access_info_compute_flow_core(), add_matching_sources(), compute_flow(), isl_access_info_add_source(), and isl_access_info_sort_sources().
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_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_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_null isl_flow * isl_flow_free | ( | __isl_take isl_flow * | deps | ) |
Definition at line 522 of file isl_flow.c.
References isl_map_free(), and isl_set_free().
Referenced by access_info_compute_flow_core(), compute_flow(), compute_mem_based_dependences(), compute_single_flow(), compute_val_based_dependences(), handle_coscheduled(), isl_access_info_compute_flow(), isl_flow_alloc(), and test_dep().
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_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_give isl_printer * isl_printer_print_union_access_info | ( | __isl_take isl_printer * | p, |
__isl_keep isl_union_access_info * | access | ||
) |
Definition at line 1824 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_ai_key_schedule, isl_ai_key_schedule_map, isl_printer_free(), isl_printer_print_schedule(), isl_printer_print_str(), isl_printer_yaml_end_mapping(), isl_printer_yaml_next(), isl_printer_yaml_start_mapping(), key_str, p, and print_access_field().
Referenced by isl_union_access_info_to_str().
__isl_give isl_printer * isl_printer_print_union_flow | ( | __isl_take isl_printer * | p, |
__isl_keep isl_union_flow * | flow | ||
) |
Definition at line 3241 of file isl_flow.c.
References flow, isl_printer_free(), isl_printer_yaml_end_mapping(), isl_printer_yaml_start_mapping(), isl_union_flow_get_full_may_dependence(), isl_union_flow_get_full_must_dependence(), isl_union_flow_get_may_no_source(), isl_union_map_free(), and p.
Referenced by isl_union_flow_to_str(), and main().
__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_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_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_give isl_restriction * isl_restriction_input | ( | __isl_take isl_set * | source_restr, |
__isl_take isl_set * | sink_restr | ||
) |
Definition at line 87 of file isl_flow.c.
References isl_calloc_type, isl_restriction_type_input, isl_set_free(), isl_set_get_ctx(), isl_restriction::sink, isl_restriction::source, and isl_restriction::type.
__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_give isl_restriction * isl_restriction_output | ( | __isl_take isl_set * | source_restr | ) |
Definition at line 115 of file isl_flow.c.
References isl_calloc_type, isl_restriction_type_output, isl_set_free(), isl_set_get_ctx(), isl_restriction::source, and isl_restriction::type.
__isl_export __isl_give isl_union_flow * isl_union_access_info_compute_flow | ( | __isl_take isl_union_access_info * | access | ) |
Definition at line 3206 of file isl_flow.c.
References isl_compute_flow_schedule_data::access, compute_flow_schedule(), compute_flow_union_map(), flow, isl_union_access_has_kill(), isl_union_access_info_add_kill_to_must_source(), isl_union_access_info_free(), isl_union_access_info_get_may_source(), isl_union_access_info_get_must_source(), isl_union_access_info_normalize(), isl_union_flow_drop_kill_source(), isl_union_map_free(), isl_compute_flow_schedule_data::must, and isl_union_access_info::schedule.
Referenced by buildFlow(), isl::union_access_info::compute_flow(), isl_union_map_compute_flow(), main(), and test_special_conditional_schedule_constraints().
__isl_give isl_union_access_info * isl_union_access_info_copy | ( | __isl_keep isl_union_access_info * | access | ) |
Definition at line 1745 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_schedule_copy(), isl_union_access_info_from_sink(), isl_union_access_info_set(), isl_union_access_info_set_schedule(), isl_union_access_info_set_schedule_map(), and isl_union_map_copy().
Referenced by isl::union_access_info::copy().
__isl_null isl_union_access_info * isl_union_access_info_free | ( | __isl_take isl_union_access_info * | access | ) |
Definition at line 1512 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_schedule_free(), and isl_union_map_free().
Referenced by compute_flow_schedule(), compute_flow_union_map(), isl_stream_read_union_access_info(), isl_union_access_info_align_params(), isl_union_access_info_compute_flow(), isl_union_access_info_init(), isl_union_access_info_introduce_schedule(), isl_union_access_info_normalize(), isl_union_access_info_set(), isl_union_access_info_set_schedule(), isl_union_access_info_set_schedule_map(), and isl::union_access_info::~union_access_info().
__isl_constructor __isl_give isl_union_access_info * isl_union_access_info_from_sink | ( | __isl_take isl_union_map * | sink | ) |
Definition at line 1590 of file isl_flow.c.
References isl_union_access_info::access, isl_access_sink, isl_union_access_info_alloc(), isl_union_access_info_init(), isl_union_map_free(), and isl_union_map_get_ctx().
Referenced by buildFlow(), isl_union_access_info_copy(), isl_union_map_compute_flow(), test_special_conditional_schedule_constraints(), and isl::union_access_info::union_access_info().
isl_ctx * isl_union_access_info_get_ctx | ( | __isl_keep isl_union_access_info * | access | ) |
Definition at line 1531 of file isl_flow.c.
References isl_access_sink, and isl_union_map_get_ctx().
Referenced by compute_flow_schedule(), isl::union_access_info::ctx(), and isl_union_access_info_to_str().
__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_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_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 | ||
) |
Definition at line 1640 of file isl_flow.c.
References isl_access_may_source, and isl_union_access_info_set().
Referenced by buildFlow(), isl_union_map_compute_flow(), and isl::union_access_info::set_may_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 | ||
) |
Definition at line 1630 of file isl_flow.c.
References isl_access_must_source, and isl_union_access_info_set().
Referenced by buildFlow(), isl_union_access_info_add_kill_to_must_source(), isl_union_map_compute_flow(), isl::union_access_info::set_must_source(), and test_special_conditional_schedule_constraints().
__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 | ||
) |
Definition at line 1706 of file isl_flow.c.
References isl_schedule_free(), isl_union_access_info_free(), isl_union_map_free(), schedule, and isl_union_access_info::schedule_map.
Referenced by buildFlow(), isl_stream_read_union_access_info(), isl_union_access_info_copy(), isl::union_access_info::set_schedule(), and test_special_conditional_schedule_constraints().
__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 | ||
) |
Definition at line 1727 of file isl_flow.c.
References isl_schedule_free(), isl_union_access_info_free(), and isl_union_map_free().
Referenced by isl_stream_read_union_access_info(), isl_union_access_info_copy(), isl_union_map_compute_flow(), and isl::union_access_info::set_schedule_map().
__isl_give char * isl_union_access_info_to_str | ( | __isl_keep isl_union_access_info * | access | ) |
Definition at line 1852 of file isl_flow.c.
References isl_printer_free(), isl_printer_get_str(), isl_printer_print_union_access_info(), isl_printer_set_yaml_style(), isl_printer_to_str(), isl_union_access_info_get_ctx(), ISL_YAML_STYLE_FLOW, and p.
Referenced by isl::operator<<().
__isl_give isl_union_flow * isl_union_flow_copy | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 2265 of file isl_flow.c.
References flow, isl_union_flow_alloc(), isl_union_flow_free(), isl_union_map_copy(), isl_union_map_get_space(), isl_union_map_union(), isl_union_flow::may_dep, isl_union_flow::may_no_source, isl_union_flow::must_dep, and isl_union_flow::must_no_source.
Referenced by isl::union_flow::copy().
__isl_null isl_union_flow * isl_union_flow_free | ( | __isl_take isl_union_flow * | flow | ) |
Definition at line 2108 of file isl_flow.c.
References flow, and isl_union_map_free().
Referenced by polly::Dependences::calculateDependences(), compute_flow_union_map(), compute_single_flow(), isl_union_flow_alloc(), isl_union_flow_copy(), isl_union_flow_drop_kill_source(), isl_union_flow_drop_schedule(), isl_union_map_compute_flow(), main(), test_special_conditional_schedule_constraints(), and isl::union_flow::~union_flow().
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_export __isl_give isl_union_map * isl_union_flow_get_full_may_dependence | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 2148 of file isl_flow.c.
References flow, isl_union_map_copy(), and isl_union_map_union().
Referenced by isl::union_flow::full_may_dependence(), and isl_printer_print_union_flow().
__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_export __isl_give isl_union_map * isl_union_flow_get_may_dependence | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 2173 of file isl_flow.c.
References flow, isl_union_map_copy(), isl_union_map_range_factor_domain(), and isl_union_map_union().
Referenced by polly::Dependences::calculateDependences(), and isl::union_flow::may_dependence().
__isl_export __isl_give isl_union_map * isl_union_flow_get_may_no_source | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 2210 of file isl_flow.c.
References flow, isl_union_map_copy(), and isl_union_map_union().
Referenced by isl_printer_print_union_flow(), and isl::union_flow::may_no_source().
__isl_export __isl_give isl_union_map * isl_union_flow_get_must_dependence | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 2159 of file isl_flow.c.
References flow, isl_union_map_copy(), and isl_union_map_range_factor_domain().
Referenced by polly::Dependences::calculateDependences(), isl_union_map_compute_flow(), isl::union_flow::must_dependence(), and test_special_conditional_schedule_constraints().
__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_give char * isl_union_flow_to_str | ( | __isl_keep isl_union_flow * | flow | ) |
Definition at line 3269 of file isl_flow.c.
References flow, isl_printer_free(), isl_printer_get_str(), isl_printer_print_union_flow(), isl_printer_set_yaml_style(), isl_printer_to_str(), isl_union_flow_get_ctx(), ISL_YAML_STYLE_FLOW, and p.
Referenced by isl::operator<<().
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 | ||
) |
Definition at line 3302 of file isl_flow.c.
References isl_compute_flow_schedule_data::access, flow, isl_union_access_info_compute_flow(), isl_union_access_info_from_sink(), isl_union_access_info_set_may_source(), isl_union_access_info_set_must_source(), isl_union_access_info_set_schedule_map(), isl_union_flow_free(), isl_union_flow_get_must_dependence(), isl_union_flow_get_must_no_source(), isl_union_flow_get_non_must_dependence(), isl_union_flow_get_non_must_no_source(), isl_union_map_free(), schedule, and isl_compute_flow_schedule_data::sink.
Referenced by test_flow(), and test_one_schedule().