Polly 20.0.0git
|
#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 } |
Variables | |
static char * | key_str [] |
#define BASE union_map |
Definition at line 1885 of file isl_flow.c.
#define BASE union_map |
Definition at line 1885 of file isl_flow.c.
#define KEY enum isl_ai_key |
Definition at line 1871 of file isl_flow.c.
#define KEY_END isl_ai_key_end |
Definition at line 1875 of file isl_flow.c.
#define KEY_ERROR isl_ai_key_error |
Definition at line 1873 of file isl_flow.c.
#define KEY_EXTRACT extract_key |
Definition at line 1879 of file isl_flow.c.
#define KEY_GET get_key |
Definition at line 1881 of file isl_flow.c.
#define KEY_STR key_str |
Definition at line 1877 of file isl_flow.c.
typedef isl_bool(* isl_access_coscheduled) (void *first, void *second) |
Definition at line 165 of file isl_flow.c.
enum 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.
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.
enum 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.
|
static |
Definition at line 1324 of file isl_flow.c.
References compute_mem_based_dependences(), compute_val_based_dependences(), isl_access_info_free(), isl_access_info_sort_sources(), isl_flow_free(), isl_map_range_map(), and res.
Referenced by compute_flow(), compute_single_flow(), and isl_access_info_compute_flow().
|
static |
Definition at line 339 of file isl_flow.c.
References access_sort_info::access_info, isl_labeled_map::data, access_sort_info::error, isl_map_get_hash(), isl_access_info::level_before, isl_labeled_map::map, and user.
Referenced by isl_access_info_sort_sources().
|
static |
Definition at line 3019 of file isl_flow.c.
References isl_scheduled_access::access, isl_access_info_add_source(), isl_access_info_free(), isl_map_copy(), isl_map_get_space(), isl_space_free(), isl_space_is_equal(), isl_space_range(), isl_scheduled_access::must, isl_compute_flow_schedule_data::n_source, isl_scheduled_access::node, isl_compute_flow_schedule_data::sink, and isl_compute_flow_schedule_data::source.
Referenced by compute_single_flow().
|
static |
Definition at line 555 of file isl_flow.c.
References isl_basic_map_equal(), isl_basic_map_more_at(), and isl_map_from_basic_map().
Referenced by all_later_sources(), all_sources(), last_later_source(), and last_source().
|
static |
Definition at line 846 of file isl_flow.c.
References all_later_sources(), can_precede_at_level(), isl_dim_in, isl_map_copy(), isl_map_dim(), isl_map_free(), isl_map_from_domain_and_range(), isl_map_get_space(), isl_map_intersect_range(), isl_map_plain_is_empty(), isl_map_range(), isl_map_subtract(), isl_map_union(), isl_map_union_disjoint(), isl_set_copy(), isl_set_universe(), isl_space_domain(), and map.
Referenced by compute_val_based_dependences().
|
static |
Definition at line 808 of file isl_flow.c.
References after_at_level(), isl_map_apply_range(), isl_map_copy(), isl_map_get_space(), isl_map_intersect(), isl_map_intersect_domain(), isl_map_range(), isl_map_reverse(), isl_space_join(), and isl_space_reverse().
Referenced by all_intermediate_sources().
|
static |
Definition at line 783 of file isl_flow.c.
References after_at_level(), isl_map_apply_range(), isl_map_copy(), isl_map_get_space(), isl_map_intersect(), isl_map_intersect_domain(), and isl_map_reverse().
Referenced by compute_val_based_dependences().
|
static |
Definition at line 2419 of file isl_flow.c.
References cmp(), isl_sched_info::cst, isl_sched_info::is_cst, isl_vec_cmp_element(), and isl_vec_size().
Referenced by before_node(), compute_flow(), compute_mem_based_dependences(), generate_shifted_component_parts(), generate_shifted_component_tree(), graft_extension(), isl_schedule_node_graft_before_or_after(), and isl_schedule_node_order_before_or_after().
|
static |
Definition at line 2969 of file isl_flow.c.
References before(), isl_schedule_node_free(), isl_schedule_node_get_ancestor_child_position(), isl_schedule_node_get_schedule_depth(), isl_schedule_node_get_shared_ancestor(), isl_schedule_node_get_type(), and isl_schedule_node_sequence.
Referenced by compute_single_flow().
|
static |
Definition at line 707 of file isl_flow.c.
Referenced by all_intermediate_sources(), compute_val_based_dependences(), and intermediate_sources().
|
static |
Definition at line 2371 of file isl_flow.c.
References isl_compute_flow_data::accesses, isl_compute_flow_data::count, isl_compute_flow_data::dim, isl_access_info_add_source(), isl_map_free(), isl_map_get_space(), isl_space_free(), isl_space_is_equal(), isl_space_range(), isl_stat_error, isl_stat_ok, map, isl_compute_flow_data::must, sched_info_alloc(), isl_compute_flow_data::source_info, and user.
Referenced by compute_flow().
|
static |
Definition at line 2908 of file isl_flow.c.
References isl_union_access_info::access, isl_compute_flow_schedule_data::access, extract_sink_source(), isl_access_may_source, isl_access_must_source, isl_access_sink, isl_bool_error, isl_bool_false, isl_bool_true, isl_schedule_node_get_prefix_schedule_relation(), isl_schedule_node_get_type(), isl_schedule_node_leaf, isl_union_map_apply_range(), isl_union_map_copy(), isl_union_map_foreach_map(), isl_union_map_free(), isl_union_map_range_map(), isl_union_map_reverse(), isl_compute_flow_schedule_data::must, isl_compute_flow_schedule_data::node, isl_compute_flow_schedule_data::set_sink, and user.
Referenced by compute_flow_schedule().
|
static |
Definition at line 2494 of file isl_flow.c.
References access_info_compute_flow_core(), isl_compute_flow_data::accesses, before(), collect_matching_array(), isl_access_info::coscheduled, coscheduled(), isl_compute_flow_data::count, count_matching_array(), isl_compute_flow_data::dim, isl_compute_flow_data::flow, flow, isl_access_info_alloc(), isl_access_info_free(), isl_calloc_array, isl_flow_free(), isl_flow_get_no_source(), isl_map_copy(), isl_map_free(), isl_map_get_ctx(), isl_map_get_space(), isl_space_free(), isl_space_range(), isl_stat_error, isl_stat_ok, isl_union_map_foreach_map(), isl_union_map_from_map(), isl_union_map_union(), map, isl_union_flow::may_dep, isl_union_flow::may_no_source, isl_compute_flow_data::may_source, isl_compute_flow_data::must, isl_union_flow::must_dep, isl_union_flow::must_no_source, isl_compute_flow_data::must_source, sched_info_alloc(), sched_info_free(), isl_compute_flow_data::sink_info, isl_compute_flow_data::source_info, and user.
Referenced by compute_flow_union_map().
|
static |
Definition at line 3139 of file isl_flow.c.
References isl_union_access_info::access, isl_compute_flow_schedule_data::access, collect_sink_source(), compute_single_flow(), count_sink_source(), flow, isl_access_sink, isl_calloc_array, isl_compute_flow_schedule_data_align_params(), isl_compute_flow_schedule_data_clear(), isl_schedule_foreach_schedule_node_top_down(), isl_union_access_info_free(), isl_union_access_info_get_ctx(), isl_union_flow_alloc(), isl_union_map_get_space(), n, isl_compute_flow_schedule_data::n_sink, isl_compute_flow_schedule_data::n_source, isl_union_access_info::schedule, isl_compute_flow_schedule_data::sink, and isl_compute_flow_schedule_data::source.
Referenced by isl_union_access_info_compute_flow().
|
static |
Definition at line 2689 of file isl_flow.c.
References compute_flow(), isl_compute_flow_data::flow, isl_access_may_source, isl_access_must_source, isl_access_sink, isl_union_access_info_align_params(), isl_union_access_info_free(), isl_union_access_info_introduce_schedule(), isl_union_flow_alloc(), isl_union_flow_drop_schedule(), isl_union_flow_free(), isl_union_map_foreach_map(), isl_union_map_get_space(), isl_compute_flow_data::may_source, and isl_compute_flow_data::must_source.
Referenced by isl_union_access_info_compute_flow().
|
static |
Definition at line 1056 of file isl_flow.c.
References before(), isl_flow_alloc(), isl_flow_free(), isl_map_apply_range(), isl_map_copy(), isl_map_domain(), isl_map_get_space(), isl_map_intersect(), isl_map_lex_le_first(), isl_map_lex_lt_first(), isl_map_range(), isl_map_reverse(), isl_map_union(), isl_set_copy(), isl_set_free(), isl_set_subtract(), and res.
Referenced by access_info_compute_flow_core().
|
static |
Definition at line 3072 of file isl_flow.c.
References isl_scheduled_access::access, access_info_compute_flow_core(), add_matching_sources(), before_node(), coscheduled_node(), flow, isl_access_info_alloc(), isl_flow_free(), isl_flow_get_no_source(), isl_map_copy(), isl_map_domain_factor_range(), isl_map_factor_range(), isl_map_range_curry(), isl_union_flow_free(), isl_union_map_from_map(), isl_union_map_union(), map, isl_compute_flow_schedule_data::n_source, and isl_scheduled_access::node.
Referenced by compute_flow_schedule().
|
static |
Definition at line 1149 of file isl_flow.c.
References all_intermediate_sources(), all_sources(), can_precede_at_level(), isl_map::ctx, handle_coscheduled(), intermediate_sources(), isl_calloc_array, isl_dim_in, isl_flow_alloc(), isl_flow_free(), isl_map_copy(), isl_map_dim(), isl_map_domain(), isl_map_empty(), isl_map_free(), isl_map_get_ctx(), isl_map_get_space(), isl_map_range(), isl_map_union(), isl_map_union_disjoint(), isl_set_copy(), isl_set_empty(), isl_set_free(), isl_set_get_space(), isl_set_plain_is_empty(), isl_set_subtract(), isl_set_union_disjoint(), last_source(), and res.
Referenced by access_info_compute_flow_core().
|
static |
Definition at line 2460 of file isl_flow.c.
References cmp(), isl_sched_info::cst, isl_sched_info::is_cst, isl_bool_error, isl_bool_false, isl_bool_true, isl_vec_cmp_element(), and isl_vec_size().
Referenced by compute_flow(), and handle_coscheduled().
|
static |
Definition at line 3008 of file isl_flow.c.
References isl_bool_ok().
Referenced by compute_single_flow().
|
static |
Definition at line 920 of file isl_flow.c.
References equal, isl_basic_map_equal(), isl_map_copy(), isl_map_domain(), isl_map_domain_product(), isl_map_from_basic_map(), isl_map_get_space(), isl_map_intersect_domain(), isl_map_intersect_domain_factor_range(), isl_map_range(), isl_map_range_product(), isl_map_uncurry(), isl_set_unwrap(), isl_space_join(), isl_space_reverse(), map, and pos().
Referenced by handle_coscheduled().
|
static |
Definition at line 2348 of file isl_flow.c.
References isl_compute_flow_data::count, isl_compute_flow_data::dim, isl_map_free(), isl_map_get_space(), isl_space_free(), isl_space_is_equal(), isl_space_range(), isl_stat_error, isl_stat_ok, map, and user.
Referenced by compute_flow().
|
static |
Definition at line 2823 of file isl_flow.c.
References isl_union_access_info::access, isl_compute_flow_schedule_data::access, domain, isl_access_may_source, isl_access_must_source, isl_access_sink, isl_bool_error, isl_bool_false, isl_bool_true, isl_schedule_node_get_type(), isl_schedule_node_get_universe_domain(), isl_schedule_node_leaf, isl_union_map_copy(), isl_union_map_free(), isl_union_map_intersect_domain(), isl_union_map_n_map(), isl_union_set_copy(), isl_union_set_free(), n, isl_compute_flow_schedule_data::n_sink, isl_compute_flow_schedule_data::n_source, isl_compute_flow_schedule_data::node, and user.
Referenced by compute_flow_schedule().
|
static |
Definition at line 2867 of file isl_flow.c.
References isl_scheduled_access::access, isl_schedule_node_copy(), isl_stat_ok, map, isl_compute_flow_schedule_data::must, isl_compute_flow_schedule_data::n_sink, isl_compute_flow_schedule_data::n_source, isl_compute_flow_schedule_data::node, isl_compute_flow_schedule_data::set_sink, isl_compute_flow_schedule_data::sink, isl_compute_flow_schedule_data::source, and user.
Referenced by collect_sink_source().
|
static |
Definition at line 985 of file isl_flow.c.
References coscheduled(), coscheduled_source(), flow, isl_flow_free(), isl_map_copy(), isl_map_domain_factor_domain(), isl_map_domain_factor_range(), isl_map_empty(), isl_map_free(), isl_map_get_space(), isl_map_plain_is_empty(), isl_map_subtract(), isl_map_union(), map, and pos().
Referenced by compute_val_based_dependences().
|
static |
Definition at line 731 of file isl_flow.c.
References can_precede_at_level(), isl_dim_in, isl_map_copy(), isl_map_dim(), isl_map_free(), isl_map_intersect_range(), isl_map_plain_is_empty(), isl_map_union_disjoint(), isl_set_free(), isl_stat_error, isl_stat_ok, and last_later_source().
Referenced by compute_val_based_dependences().
__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.
|
static |
Definition at line 375 of file isl_flow.c.
References access_sort_info::access_info, access_sort_cmp(), access_sort_info::error, isl_access_info_free(), and isl_sort().
Referenced by access_info_compute_flow_core().
|
static |
Definition at line 2760 of file isl_flow.c.
References isl_scheduled_access::access, isl_map_align_params(), isl_map_get_space(), isl_space_align_params(), isl_space_copy(), isl_space_free(), isl_compute_flow_schedule_data::n_sink, isl_compute_flow_schedule_data::n_source, isl_compute_flow_schedule_data::sink, and isl_compute_flow_schedule_data::source.
Referenced by compute_flow_schedule().
|
static |
Definition at line 2793 of file isl_flow.c.
References isl_scheduled_access::access, isl_map_free(), isl_schedule_node_free(), isl_compute_flow_schedule_data::n_sink, isl_compute_flow_schedule_data::n_source, isl_scheduled_access::node, isl_compute_flow_schedule_data::sink, and isl_compute_flow_schedule_data::source.
Referenced by compute_flow_schedule().
|
static |
Definition at line 430 of file isl_flow.c.
References isl_labeled_map::data, isl_flow::dep, isl_calloc_array, isl_calloc_type, isl_flow_free(), isl_map_copy(), isl_map_empty(), isl_map_get_ctx(), isl_map_get_space(), isl_space_reverse(), isl_labeled_map::map, isl_labeled_map::must, n, and space_align_and_join().
Referenced by compute_mem_based_dependences(), and compute_val_based_dependences().
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().
|
static |
Definition at line 46 of file isl_flow.c.
References isl_calloc_type, isl_map_free(), isl_map_get_ctx(), isl_restriction::type, and type.
Referenced by isl_restriction_empty(), and isl_restriction_none().
__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_give isl_union_access_info * isl_stream_read_union_access_info | ( | isl_stream * | s | ) |
Definition at line 1897 of file isl_flow.c.
References isl_ai_key_end, isl_ai_key_error, isl_ai_key_kill, isl_ai_key_may_source, isl_ai_key_must_source, isl_ai_key_schedule, isl_ai_key_schedule_map, isl_ai_key_sink, isl_bool_true, isl_stream_error(), isl_stream_get_ctx(), isl_stream_read_schedule(), isl_stream_yaml_next(), isl_stream_yaml_read_end_mapping(), isl_stream_yaml_read_start_mapping(), isl_union_access_info_alloc(), isl_union_access_info_free(), isl_union_access_info_init(), isl_union_access_info_set(), isl_union_access_info_set_schedule(), isl_union_access_info_set_schedule_map(), key, schedule, and type.
Referenced by isl_union_access_info_read_from_file().
|
static |
Definition at line 1692 of file isl_flow.c.
References isl_access_kill, isl_bool_error, isl_bool_not(), and isl_union_map_is_empty().
Referenced by isl_union_access_info_compute_flow().
|
static |
Definition at line 2589 of file isl_flow.c.
References isl_union_access_info_get_kill(), isl_union_access_info_get_must_source(), isl_union_access_info_set_must_source(), isl_union_map_union(), and isl_compute_flow_data::must.
Referenced by isl_union_access_info_compute_flow().
|
static |
Definition at line 1993 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_space_align_params(), isl_space_copy(), isl_space_free(), isl_union_access_info_free(), isl_union_map_align_params(), and isl_union_map_get_space().
Referenced by compute_flow_union_map().
|
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_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_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().
|
static |
Definition at line 1658 of file isl_flow.c.
References isl_union_map_copy(), and type.
Referenced by isl_union_access_info_get_kill(), isl_union_access_info_get_may_source(), and isl_union_access_info_get_must_source().
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_map * isl_union_access_info_get_kill | ( | __isl_keep isl_union_access_info * | info | ) |
Definition at line 1684 of file isl_flow.c.
References isl_access_kill, and isl_union_access_info_get().
Referenced by isl_union_access_info_add_kill_to_must_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_give isl_union_map * isl_union_access_info_get_must_source | ( | __isl_keep isl_union_access_info * | info | ) |
Definition at line 1668 of file isl_flow.c.
References isl_access_must_source, and isl_union_access_info_get().
Referenced by isl_union_access_info_add_kill_to_must_source(), and isl_union_access_info_compute_flow().
|
static |
Definition at line 1556 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_schedule_empty(), isl_space_copy(), isl_space_free(), isl_union_access_info_free(), isl_union_map_copy(), isl_union_map_empty(), isl_union_map_free(), and isl_union_map_get_space().
Referenced by isl_stream_read_union_access_info(), and isl_union_access_info_from_sink().
|
static |
Definition at line 2052 of file isl_flow.c.
References isl_access_end, isl_access_sink, isl_union_access_info_free(), isl_union_map_apply_range(), isl_union_map_copy(), isl_union_map_range_map(), and isl_union_map_reverse().
Referenced by compute_flow_union_map().
|
static |
Definition at line 2656 of file isl_flow.c.
References isl_union_access_info::access, isl_access_may_source, isl_access_must_source, isl_union_access_info_free(), isl_union_map_copy(), and isl_union_map_subtract().
Referenced by isl_union_access_info_compute_flow().
__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().
|
static |
Definition at line 1611 of file isl_flow.c.
References isl_union_access_info_free(), isl_union_map_free(), and type.
Referenced by isl_stream_read_union_access_info(), isl_union_access_info_copy(), isl_union_access_info_set_kill(), isl_union_access_info_set_may_source(), and isl_union_access_info_set_must_source().
__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_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_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_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_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<<().
|
static |
Definition at line 2233 of file isl_flow.c.
References flow, isl_alloc_type, isl_space_free(), isl_space_get_ctx(), isl_union_flow_free(), isl_union_map_copy(), and isl_union_map_empty().
Referenced by compute_flow_schedule(), compute_flow_union_map(), and isl_union_flow_copy().
__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().
|
static |
Definition at line 2622 of file isl_flow.c.
References flow, isl_union_flow_free(), isl_union_map_copy(), isl_union_map_free(), isl_union_map_intersect_range_factor_range(), isl_union_map_union(), and isl_compute_flow_data::must.
Referenced by isl_union_access_info_compute_flow().
|
static |
Definition at line 2313 of file isl_flow.c.
References flow, isl_union_flow_free(), isl_union_map_domain_factor_range(), isl_union_map_factor_range(), and isl_union_map_range_curry().
Referenced by compute_flow_union_map().
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_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_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_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_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_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_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_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().
|
static |
Definition at line 2187 of file isl_flow.c.
References flow, and isl_union_map_copy().
Referenced by isl_union_map_compute_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_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().
|
static |
Definition at line 664 of file isl_flow.c.
References after_at_level(), isl_map_apply_range(), isl_map_copy(), isl_map_get_space(), isl_map_intersect(), isl_map_range(), isl_map_reverse(), isl_space_reverse(), isl_labeled_map::map, restricted_partial_lexmax(), result, isl_access_info::sink, isl_access_info::source, and space_align_and_join().
Referenced by intermediate_sources().
|
static |
Definition at line 636 of file isl_flow.c.
References after_at_level(), isl_map_apply_range(), isl_map_copy(), isl_map_get_space(), isl_map_intersect(), isl_map_reverse(), isl_labeled_map::map, restricted_partial_lexmax(), result, isl_access_info::sink, and isl_access_info::source.
Referenced by compute_val_based_dependences().
|
static |
Definition at line 1806 of file isl_flow.c.
References isl_access_sink, isl_printer_free(), isl_union_map_is_empty(), key_str, p, and type.
Referenced by isl_printer_print_union_access_info().
|
static |
Definition at line 580 of file isl_flow.c.
References isl_map_apply_domain(), isl_map_copy(), isl_map_empty(), isl_map_free(), isl_map_get_space(), isl_map_intersect_range(), isl_map_partial_lexmax(), isl_map_reverse(), isl_restriction_free(), isl_restriction_type_empty, isl_restriction_type_input, isl_restriction_type_output, isl_set_apply(), isl_set_copy(), isl_set_free(), isl_set_intersect(), res, isl_restriction::sink, isl_restriction::source, and isl_restriction::type.
Referenced by last_later_source(), and last_source().
|
static |
Definition at line 1422 of file isl_flow.c.
References isl_sched_info::cst, isl_sched_info::is_cst, isl_alloc_array, isl_alloc_type, isl_dim_in, isl_map_get_ctx(), isl_map_get_space(), isl_map_plain_get_val_if_fixed(), isl_space_dim(), isl_space_domain(), isl_space_free(), isl_space_unwrap(), isl_val_free(), isl_val_is_nan(), isl_vec_alloc(), isl_vec_set_element_val(), map, n, and sched_info_free().
Referenced by collect_matching_array(), and compute_flow().
|
static |
Definition at line 1406 of file isl_flow.c.
References isl_vec_free().
Referenced by compute_flow(), and sched_info_alloc().
|
static |
Definition at line 400 of file isl_flow.c.
References access_sort_info::error, isl_space_align_params(), isl_space_copy(), isl_space_free(), isl_space_has_equal_params(), and isl_space_join().
Referenced by isl_flow_alloc(), and last_later_source().
|
static |
Definition at line 1791 of file isl_flow.c.
Referenced by isl_printer_print_union_access_info(), and print_access_field().