Polly 20.0.0git
|
#include <isl_ctx_private.h>
#include <isl_map_private.h>
#include <isl_space_private.h>
#include <isl_aff_private.h>
#include <isl/hash.h>
#include <isl/id.h>
#include <isl/constraint.h>
#include <isl/schedule.h>
#include <isl_schedule_constraints.h>
#include <isl/schedule_node.h>
#include <isl_mat_private.h>
#include <isl_vec_private.h>
#include <isl/set.h>
#include <isl_union_set_private.h>
#include <isl_seq.h>
#include <isl_tab.h>
#include <isl_dim_map.h>
#include <isl/map_to_basic_set.h>
#include <isl_sort.h>
#include <isl_options_private.h>
#include <isl_tarjan.h>
#include <isl_morph.h>
#include <isl/ilp.h>
#include <isl_val_private.h>
#include "isl_scheduler.h"
#include "isl_scheduler_clustering.h"
Go to the source code of this file.
Classes | |
struct | isl_extract_edge_data |
struct | isl_exploit_lineality_data |
struct | isl_carry |
struct | isl_add_all_constraints_data |
struct | isl_sched_count |
struct | isl_collect_bounds_data |
|
static |
Definition at line 4110 of file isl_scheduler.c.
References isl_add_all_constraints_data::carry_inter, isl_add_all_constraints_data::ctx, isl_add_all_constraints_data::graph, isl_stat_error, isl_stat_ok, lp_add_inter(), lp_add_intra(), and isl_add_all_constraints_data::pos.
Referenced by setup_carry_lp().
|
static |
Definition at line 2185 of file isl_scheduler.c.
References add_inter_proximity_constraints(), add_intra_proximity_constraints(), isl_sched_edge::dst, isl_sched_graph::edge, force_zero(), is_validity(), isl_sched_edge_is_proximity(), isl_sched_graph::n_edge, and isl_sched_edge::src.
Referenced by setup_lp().
|
static |
Definition at line 2139 of file isl_scheduler.c.
References add_inter_validity_constraints(), add_intra_validity_constraints(), isl_sched_edge::dst, isl_sched_graph::edge, force_zero(), is_validity(), isl_sched_graph::n_edge, and isl_sched_edge::src.
Referenced by setup_lp().
|
static |
Definition at line 2616 of file isl_scheduler.c.
References isl_options_get_schedule_max_coefficient(), isl_options_get_schedule_treat_coalescing(), isl_stat_error, isl_stat_ok, isl_sched_node::max, isl_sched_graph::n, isl_sched_graph::node, and node_add_coefficient_constraints().
Referenced by setup_lp().
|
static |
Definition at line 2465 of file isl_scheduler.c.
References isl_basic_set_alloc_inequality(), isl_basic_set_dim(), isl_dim_set, isl_int_set_si, isl_options_get_schedule_max_constant_term(), isl_seq_clr(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_node::max, isl_sched_graph::n, isl_sched_graph::node, node_cst_coef_offset(), pos(), and total().
Referenced by setup_lp().
|
static |
Definition at line 1862 of file isl_scheduler.c.
References isl_basic_set_add_constraints_dim_map(), isl_basic_set_extend_constraints(), isl_basic_set_free(), isl_basic_set_n_equality(), and isl_basic_set_n_inequality().
Referenced by add_inter_constraints(), add_inter_proximity_constraints(), add_inter_validity_constraints(), add_intra_constraints(), add_intra_proximity_constraints(), and add_intra_validity_constraints().
|
static |
Definition at line 4662 of file isl_scheduler.c.
References compress(), isl_sched_edge::dst, isl_map_copy(), isl_union_map_add_map(), isl_sched_edge::map, map, and isl_sched_edge::src.
Referenced by collect_inter_validity().
|
static |
Definition at line 3924 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), inter_dim_map(), isl_basic_set_free(), isl_basic_set_get_ctx(), isl_dim_map_range(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, offset, and pos().
Referenced by lp_add_inter().
|
static |
Definition at line 2085 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), isl_sched_edge::dst, inter_coefficients(), inter_dim_map(), isl_basic_set_free(), isl_dim_map_range(), isl_dim_param, isl_map_copy(), isl_map_get_ctx(), isl_space_dim(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_edge::map, map, isl_sched_node::nparam, offset, isl_sched_node::space, and isl_sched_edge::src.
Referenced by add_all_proximity_constraints().
|
static |
Definition at line 1929 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), isl_sched_edge::dst, isl_sched_edge::end, inter_coefficients(), inter_dim_map(), isl_basic_set_free(), isl_map_copy(), isl_map_get_ctx(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_edge::map, map, offset, isl_sched_edge::src, and isl_sched_edge::start.
Referenced by add_all_validity_constraints().
|
static |
Definition at line 4642 of file isl_scheduler.c.
References compress(), isl_sched_edge::dst, isl_map_copy(), isl_union_map_add_map(), isl_sched_edge::map, map, and isl_sched_edge::src.
Referenced by collect_intra_validity().
|
static |
Definition at line 3879 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), intra_dim_map(), isl_basic_set_free(), isl_basic_set_get_ctx(), isl_dim_map_range(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, offset, and pos().
Referenced by lp_add_intra().
|
static |
Definition at line 2006 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), intra_coefficients(), intra_dim_map(), isl_basic_set_free(), isl_dim_map_range(), isl_dim_param, isl_map_copy(), isl_map_get_ctx(), isl_space_dim(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_edge::map, map, isl_sched_node::nparam, offset, isl_sched_node::space, and isl_sched_edge::src.
Referenced by add_all_proximity_constraints().
|
static |
Definition at line 1892 of file isl_scheduler.c.
References add_constraints_dim_map(), coef_var_offset(), isl_sched_graph::edge, intra_coefficients(), intra_dim_map(), isl_basic_set_free(), isl_map_copy(), isl_map_get_ctx(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_edge::map, map, offset, and isl_sched_edge::src.
Referenced by add_all_validity_constraints().
|
static |
Definition at line 4802 of file isl_scheduler.c.
References add_non_trivial_lineality(), hull, isl_basic_set_dim(), isl_basic_set_free(), isl_basic_set_n_equality(), isl_dim_set, isl_set_remove_divs(), isl_set_unshifted_simple_hull(), isl_stat_error, isl_stat_ok, set, and user.
Referenced by exploit_intra_lineality().
|
static |
Definition at line 972 of file isl_scheduler.c.
References isl_sched_node::coincident, compress(), isl_sched_node::compress, isl_sched_node::compressed, compute_sizes_and_max(), isl_sched_node::decompress, isl_sched_node::hull, hull, isl_calloc_array, isl_dim_param, isl_mat_alloc(), isl_pw_multi_aff_free(), isl_set_dim(), isl_set_free(), isl_set_get_ctx(), isl_set_get_space(), isl_stat_error, isl_stat_ok, isl_sched_graph::max_row, isl_sched_graph::n, isl_sched_graph::node, isl_sched_node::nparam, isl_sched_node::nvar, isl_ctx::opt, isl_sched_node::sched, isl_sched_node::sched_map, isl_options::schedule_parametric, set, and isl_sched_node::space.
Referenced by extract_node().
|
static |
Definition at line 4750 of file isl_scheduler.c.
References isl_exploit_lineality_data::any_non_trivial, isl_exploit_lineality_data::equivalent, isl_basic_set_check_no_locals(), isl_basic_set_extract_equalities(), isl_basic_set_free(), isl_basic_set_get_space(), isl_bool_true, isl_dim_out, isl_mat_insert_zero_rows(), isl_mat_rows(), isl_mat_set_element_si(), isl_multi_aff_from_aff_mat(), isl_multi_pw_aff_eq_map(), isl_multi_pw_aff_from_multi_aff(), isl_set_universe(), isl_space_add_dims(), isl_space_copy(), isl_space_free(), isl_space_from_domain(), isl_stat_error, isl_stat_ok, isl_union_map_add_map(), isl_union_map_empty(), isl_union_set_add_set(), isl_union_set_empty(), ma, map, isl_exploit_lineality_data::mask, and n.
Referenced by add_lineality().
|
static |
Definition at line 2664 of file isl_scheduler.c.
References isl_basic_set_alloc_equality(), isl_basic_set_dim(), isl_dim_set, isl_int_set_si, isl_seq_clr(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_graph::n, isl_sched_graph::node, node_par_coef_offset(), isl_sched_node::nparam, pos(), and total().
Referenced by setup_carry_lp(), and setup_lp().
|
static |
Definition at line 2640 of file isl_scheduler.c.
References isl_basic_set_alloc_equality(), isl_basic_set_dim(), isl_dim_set, isl_int_set_si, isl_seq_clr(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, n, and total().
Referenced by setup_lp().
|
static |
Definition at line 2692 of file isl_scheduler.c.
References isl_basic_set_alloc_equality(), isl_basic_set_dim(), isl_dim_set, isl_int_set_si, isl_seq_clr(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_graph::n, isl_sched_graph::node, node_var_coef_offset(), isl_sched_node::nvar, pos(), and total().
Referenced by setup_carry_lp(), and setup_lp().
|
static |
Definition at line 4135 of file isl_scheduler.c.
References isl_sched_count::n_eq, isl_sched_count::n_ineq, update_count(), and user.
Referenced by count_all_constraints().
|
static |
Definition at line 4530 of file isl_scheduler.c.
References isl_int_cmp_si, isl_int_divexact, and isl_int_set_si.
Referenced by non_neg_lexmin().
|
static |
Definition at line 5170 of file isl_scheduler.c.
References compute_carrying_sol(), compute_component_schedule(), is_any_trivial(), isl_die, isl_error_unknown, isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_vec_free(), isl_sched_graph::n_row, isl_sched_graph::scc, isl_vec::size, split_scaled(), and update_schedule().
Referenced by carry_fallback(), carry_feautrier(), compute_carrying_sol(), isl_carry_clear(), mp_int_add(), mp_int_sub(), s_kmul(), and s_ksqr().
|
static |
Definition at line 5246 of file isl_scheduler.c.
References carry_fallback().
Referenced by isl_schedule_node_compute_finish_band().
|
static |
Definition at line 5235 of file isl_scheduler.c.
References carry_fallback().
Referenced by isl_schedule_node_compute_finish_band(), and sort_statements().
|
static |
Definition at line 5213 of file isl_scheduler.c.
References carry().
Referenced by carry_coincidence(), and carry_dependences().
|
static |
Definition at line 5225 of file isl_scheduler.c.
References carry().
Referenced by compute_schedule_wcc_feautrier().
|
static |
Definition at line 2810 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_sched_graph::dst_scc, isl_sched_graph::edge, isl_sched_edge::end, is_validity(), isl_sched_graph::lp, isl_sched_graph::n_edge, isl_sched_node::scc, isl_sched_edge::src, isl_sched_graph::src_scc, isl_sched_edge::start, and user.
Referenced by solve_lp().
|
static |
Definition at line 138 of file isl_scheduler.c.
References clear_type(), and isl_edge_local.
Referenced by clear_local_edges().
|
static |
Definition at line 5358 of file isl_scheduler.c.
References clear_local(), isl_sched_graph::edge, isl_sched_edge_is_condition(), and isl_sched_graph::n_edge.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 494 of file isl_scheduler.c.
References isl_sched_node::bounds, isl_sched_node::coincident, isl_sched_node::compress, isl_sched_node::decompress, isl_sched_node::hull, isl_sched_node::indep, isl_basic_set_free(), isl_map_free(), isl_mat_free(), isl_pw_multi_aff_free(), isl_set_free(), isl_space_free(), isl_vec_free(), isl_sched_node::max, isl_sched_graph::root, isl_sched_node::sched, isl_sched_node::sched_map, isl_sched_node::sizes, isl_sched_node::space, and isl_sched_node::vmap.
Referenced by isl_sched_graph_free().
|
static |
Definition at line 96 of file isl_scheduler.c.
References ISL_FL_CLR, type, and isl_sched_edge::types.
Referenced by clear_local().
|
static |
Definition at line 1487 of file isl_scheduler.c.
References a(), b(), isl_sched_graph::node, and isl_sched_node::scc.
Referenced by sort_sccs().
|
static |
Definition at line 1702 of file isl_scheduler.c.
References isl_basic_set_get_space(), isl_dim_in, isl_space_dim(), isl_space_free(), isl_space_unwrap(), and offset.
Referenced by add_inter_constraints(), add_inter_proximity_constraints(), add_inter_validity_constraints(), add_intra_constraints(), add_intra_proximity_constraints(), and add_intra_validity_constraints().
|
static |
Definition at line 4692 of file isl_scheduler.c.
References isl_collect_bounds_data::bounds, isl_sched_node::bounds, isl_collect_bounds_data::ctx, get_size_bounds(), isl_collect_bounds_data::graph, graph_find_compressed_node(), isl_set_free(), isl_set_from_basic_set(), isl_set_get_space(), isl_space_free(), isl_stat_ok, isl_union_set_add_set(), set, isl_sched_node::space, and user.
Referenced by union_drop_coalescing_constraints().
|
static |
Definition at line 5025 of file isl_scheduler.c.
References add_inter(), collect_validity(), exploit_inter_lineality(), isl_basic_set_list, isl_basic_set_list_coefficients(), isl_union_map_remove_divs(), isl_union_map_wrap(), isl_union_set_free(), isl_union_set_get_basic_set_list(), and wrap.
Referenced by compute_carrying_sol().
|
static |
Definition at line 4975 of file isl_scheduler.c.
References add_intra(), collect_validity(), exploit_intra_lineality(), isl_basic_set_list, isl_basic_set_list_coefficients(), isl_options_get_schedule_treat_coalescing(), isl_union_map_deltas(), isl_union_set_free(), isl_union_set_get_basic_set_list(), isl_union_set_project_out_all_params(), isl_union_set_remove_divs(), and union_drop_coalescing_constraints().
Referenced by compute_carrying_sol().
|
static |
Definition at line 4915 of file isl_scheduler.c.
References add(), isl_sched_graph::edge, is_any_validity(), is_coincidence(), isl_space_copy(), isl_union_map_empty(), isl_sched_graph::n_edge, isl_sched_graph::node, and isl_sched_node::space.
Referenced by collect_inter_validity(), and collect_intra_validity().
|
static |
Definition at line 1553 of file isl_scheduler.c.
References isl_sched_node::compressed, isl_sched_node::decompress, isl_map_preimage_domain_pw_multi_aff(), isl_map_preimage_range_pw_multi_aff(), isl_pw_multi_aff_copy(), and map.
Referenced by add_inter(), add_intra(), add_node(), compress_node(), extract_node(), inter_coefficients(), intra_coefficients(), and project_out_fixed().
|
static |
Definition at line 792 of file isl_scheduler.c.
References compress(), isl_sched_node::compress, isl_sched_node::compressed, isl_sched_node::decompress, isl_sched_node::hull, hull, isl_dim_out, isl_multi_aff_pullback_multi_aff(), isl_pw_multi_aff_pullback_pw_multi_aff(), isl_set_intersect(), isl_set_preimage_multi_aff(), isl_stat_error, isl_stat_ok, isl_sched_graph::node, and isl_sched_node::nvar.
Referenced by project_out_fixed().
|
static |
Definition at line 5096 of file isl_scheduler.c.
References carry(), collect_inter_validity(), collect_intra_validity(), compute_carrying_sol_coef(), isl_carry_clear(), isl_options_get_schedule_carry_self_first(), isl_vec_alloc(), isl_vec_free(), and isl_vec::size.
Referenced by carry().
|
static |
Definition at line 5057 of file isl_scheduler.c.
References isl_basic_set_copy(), isl_sched_graph::lp, non_neg_lexmin(), and setup_carry_lp().
Referenced by compute_carrying_sol().
|
static |
Definition at line 5790 of file isl_scheduler.c.
References compute_sub_schedule(), isl_sched_edge_scc_exactly(), isl_sched_graph_compute_maxvar(), isl_sched_graph_extract_sccs(), isl_sched_node_scc_exactly(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_grandchild(), isl_schedule_node_grandparent(), isl_schedule_node_insert_sequence(), isl_schedule_node_insert_set(), isl_union_set_list, isl_sched_graph::maxvar, isl_sched_graph::n, isl_sched_graph::n_row, isl_sched_graph::scc, and isl_sched_graph::weak.
Referenced by carry(), compute_schedule(), and isl_schedule_node_compute_finish_band().
|
static |
Definition at line 643 of file isl_scheduler.c.
References isl_vec::el, isl_int_cdiv_q_ui, isl_int_gt, isl_int_is_neg, isl_int_mul_si, isl_int_set, isl_int_set_si, isl_options_get_schedule_max_coefficient(), isl_stat_error, isl_stat_ok, isl_val_free(), isl_val_is_int(), isl_vec_alloc(), isl_vec_free(), isl_sched_node::max, isl_sched_graph::node, isl_sched_node::nvar, size, and isl_sched_node::sizes.
Referenced by compute_sizes_and_max().
|
static |
Definition at line 564 of file isl_scheduler.c.
References domain, init_n_maxvar(), isl_schedule_constraints_get_domain(), isl_schedule_constraints_n_basic_map(), isl_stat_error, isl_stat_ok, isl_union_set_foreach_set(), isl_union_set_free(), isl_sched_graph::max_row, isl_sched_graph::maxvar, isl_sched_graph::n, and isl_sched_graph::n_edge.
Referenced by isl_sched_graph_init().
|
static |
Definition at line 3841 of file isl_scheduler.c.
References compute_schedule(), insert_current_band(), isl_schedule_node_child(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_parent(), next_band(), and update_edges().
Referenced by isl_schedule_node_compute_finish_band(), and split_scaled().
|
static |
Definition at line 5837 of file isl_scheduler.c.
References compute_component_schedule(), compute_schedule_wcc(), detect_sccs(), detect_wccs(), isl_options_get_schedule_serialize_sccs(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), and isl_sched_graph::scc.
Referenced by compute_next_band(), compute_sub_schedule(), and isl_schedule_constraints_compute_schedule().
|
static |
Definition at line 5748 of file isl_scheduler.c.
References compute_schedule_wcc_feautrier(), compute_schedule_wcc_whole(), detect_sccs(), isl_options_get_schedule_whole_component(), isl_sched_graph_compute_maxvar(), isl_schedule_node_compute_wcc_clustering(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), need_feautrier_step(), and isl_sched_graph::scc.
|
static |
Referenced by compute_schedule(), and compute_sub_schedule().
|
static |
Definition at line 5350 of file isl_scheduler.c.
References carry_feautrier().
Referenced by compute_schedule_wcc().
|
static |
Definition at line 5718 of file isl_scheduler.c.
References isl_schedule_node_compute_finish_band(), isl_schedule_node_compute_wcc_band(), isl_schedule_node_free(), and isl_schedule_node_get_ctx().
Referenced by compute_schedule_wcc().
|
static |
Definition at line 757 of file isl_scheduler.c.
References isl_aff_free(), isl_aff_var_on_domain(), isl_dim_set, isl_local_space_from_space(), isl_map_copy(), isl_map_deltas(), isl_map_range(), isl_map_range_product(), isl_set_free(), isl_set_get_space(), isl_set_max_val(), isl_set_unwrap(), isolate(), map, obj, and set.
Referenced by compute_sizes().
|
static |
Definition at line 890 of file isl_scheduler.c.
References isl_sched_node::compressed, compute_size(), compute_sizes(), isl_sched_node::decompress, isl_dim_set, isl_pw_multi_aff_copy(), isl_set_copy(), isl_set_dim(), isl_set_free(), isl_set_from_basic_set(), isl_set_get_space(), isl_set_preimage_pw_multi_aff(), isl_set_simple_hull(), isl_stat_error, isl_stat_ok, isl_val_is_zero(), n, isl_sched_graph::node, project_out_fixed(), set, and isl_sched_node::sizes.
Referenced by compute_sizes(), and compute_sizes_and_max().
|
static |
Definition at line 941 of file isl_scheduler.c.
References compute_max_coefficient(), compute_sizes(), isl_options_get_schedule_treat_coalescing(), isl_set_free(), isl_stat_error, isl_sched_graph::node, set, and set_max_coefficient().
Referenced by add_node().
|
static |
Definition at line 3749 of file isl_scheduler.c.
References compute_sub_schedule(), edge_dst_scc_at_most(), edge_src_scc_at_least(), extract_split(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_grandchild(), isl_schedule_node_grandparent(), isl_schedule_node_insert_sequence(), isl_schedule_node_sequence_splice_children(), isl_union_set_list, next_band(), node_scc_at_least(), node_scc_at_most(), reset_band(), and isl_sched_graph::src_scc.
Referenced by isl_schedule_node_compute_finish_band().
|
static |
Definition at line 3669 of file isl_scheduler.c.
References compute_schedule(), compute_schedule_wcc(), isl_sched_graph_extract_sub_graph(), isl_sched_graph_free(), isl_schedule_node_free(), isl_sched_graph::node, and split().
Referenced by compute_component_schedule(), and compute_split_schedule().
|
static |
Definition at line 695 of file isl_scheduler.c.
References id, isl_id_alloc(), isl_printer_free(), isl_printer_get_str(), isl_printer_print_str(), isl_printer_to_str(), isl_set_get_ctx(), isl_set_get_tuple_name(), isl_set_has_tuple_name(), name, isl_sched_graph::node, p, and set.
Referenced by extract_node(), and project_out_fixed().
|
static |
Definition at line 2861 of file isl_scheduler.c.
References isl_int_neg, isl_int_set, isl_mat_alloc(), isl_mat_cols(), isl_mat_get_ctx(), isl_mat_rows(), n, and isl_mat::row.
Referenced by solve_lp().
|
static |
Definition at line 3528 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_sched_graph::edge, graph_edge_tables_add(), is_validity(), isl_die, isl_error_internal, isl_map_copy(), isl_map_plain_is_empty(), isl_sched_edge_is_conditional_validity(), isl_sched_graph_find_node(), isl_sched_graph_is_node(), isl_stat_error, isl_stat_ok, isl_union_map_copy(), isl_sched_edge::map, map, isl_sched_graph::n_edge, isl_sched_node::space, isl_sched_edge::src, isl_sched_edge::tagged_condition, isl_sched_edge::tagged_validity, and isl_sched_edge::types.
Referenced by isl_sched_graph_extract_sub_graph().
|
static |
Definition at line 3480 of file isl_scheduler.c.
References isl_sched_node::bounds, isl_sched_node::coincident, isl_sched_node::compress, isl_sched_node::compressed, isl_sched_node::decompress, isl_sched_node::hull, isl_basic_set_copy(), isl_map_copy(), isl_mat_copy(), isl_pw_multi_aff_copy(), isl_set_copy(), isl_space_copy(), isl_stat_error, isl_stat_ok, isl_vec_copy(), isl_sched_node::max, isl_sched_graph::n, isl_sched_graph::node, isl_sched_node::nparam, isl_sched_node::nvar, isl_sched_node::sched, isl_sched_node::sched_map, isl_sched_node::sizes, and isl_sched_node::space.
Referenced by isl_sched_graph_extract_sub_graph().
|
static |
Definition at line 4148 of file isl_scheduler.c.
References bset_update_count(), isl_stat_error, isl_stat_ok, isl_sched_count::n_eq, and isl_sched_count::n_ineq.
Referenced by setup_carry_lp().
|
static |
Definition at line 2502 of file isl_scheduler.c.
References isl_options_get_schedule_max_coefficient(), isl_options_get_schedule_treat_coalescing(), isl_sched_graph::n, isl_sched_graph::node, isl_sched_node::nparam, and isl_sched_node::nvar.
Referenced by setup_lp().
|
static |
Definition at line 2448 of file isl_scheduler.c.
References isl_options_get_schedule_max_constant_term(), isl_stat_ok, and isl_sched_graph::n.
Referenced by setup_lp().
|
static |
Definition at line 2424 of file isl_scheduler.c.
References count_map_constraints(), isl_sched_graph::edge, isl_map_copy(), isl_sched_edge::map, map, and isl_sched_graph::n_edge.
Referenced by setup_lp().
|
static |
Definition at line 2373 of file isl_scheduler.c.
References isl_sched_edge::dst, edge_multiplicity(), f, inter_coefficients(), intra_coefficients(), isl_map_copy(), isl_map_free(), isl_stat_error, isl_stat_ok, map, parametric_intra_edge_multiplicity(), isl_sched_edge::src, and update_count().
Referenced by count_constraints().
|
static |
Definition at line 1471 of file isl_scheduler.c.
References isl_sched_graph_detect_ccs(), node_follows_strong(), and isl_sched_graph::weak.
Referenced by compute_schedule(), compute_schedule_wcc(), and sort_statements().
|
static |
Definition at line 1481 of file isl_scheduler.c.
References isl_sched_graph_detect_ccs(), node_follows_weak(), and isl_sched_graph::weak.
Referenced by compute_schedule().
|
static |
Definition at line 3219 of file isl_scheduler.c.
References isl_union_map_copy(), isl_union_map_free(), isl_union_map_intersect_domain(), isl_union_map_is_empty(), and isl_union_set_copy().
Referenced by has_adjacent_true_conditions(), and unconditionalize_adjacent_validity().
|
static |
Definition at line 1571 of file isl_scheduler.c.
References get_size_bounds(), isl_dim_param, isl_set_dim(), isl_set_free(), isl_set_plain_gist_basic_set(), isl_set_project_out(), isl_set_remove_divs(), and isl_sched_graph::node.
Referenced by intra_coefficients().
|
static |
Definition at line 3699 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_sched_graph::edge, isl_sched_node::scc, and isl_sched_graph::scc.
Referenced by compute_split_schedule().
|
static |
Definition at line 234 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_bool_ok(), isl_sched_edge::src, and val.
Referenced by graph_edge_table_add(), and graph_find_edge_entry().
|
static |
Definition at line 2311 of file isl_scheduler.c.
References force_zero(), is_validity(), and isl_sched_edge_is_proximity().
Referenced by count_map_constraints().
|
static |
Definition at line 3704 of file isl_scheduler.c.
References isl_sched_graph::edge, isl_sched_node::scc, isl_sched_graph::scc, and isl_sched_edge::src.
Referenced by compute_split_schedule().
|
static |
Definition at line 4881 of file isl_scheduler.c.
References isl_exploit_lineality_data::any_non_trivial, isl_exploit_lineality_data::equivalent, isl_union_map_apply_range(), isl_union_map_copy(), isl_union_map_free(), isl_union_map_remove_divs(), isl_union_map_subtract_domain(), isl_union_map_subtract_range(), isl_union_map_union(), isl_union_set_copy(), and isl_exploit_lineality_data::mask.
Referenced by collect_inter_validity().
|
static |
Definition at line 4843 of file isl_scheduler.c.
References add_lineality(), isl_exploit_lineality_data::any_non_trivial, isl_exploit_lineality_data::equivalent, isl_bool_error, isl_bool_false, isl_union_map_copy(), isl_union_set_apply(), isl_union_set_combined_lineality_space(), isl_union_set_copy(), isl_union_set_foreach_set(), isl_union_set_free(), isl_union_set_remove_divs(), isl_union_set_subtract(), isl_union_set_union(), and isl_exploit_lineality_data::mask.
Referenced by collect_intra_validity().
|
static |
Definition at line 1259 of file isl_scheduler.c.
References isl_sched_node::compressed, isl_sched_edge::dst, isl_sched_graph::edge, extract_hull(), find_domain_node(), find_range_node(), isl_extract_edge_data::graph, graph_edge_table_add(), graph_find_matching_edge(), hull, insert_dummy_tags(), isl_edge_condition, isl_edge_conditional_validity, isl_map_can_zip(), isl_map_copy(), isl_map_domain(), isl_map_free(), isl_map_get_ctx(), isl_map_intersect(), isl_map_plain_is_empty(), isl_map_zip(), isl_sched_graph_is_node(), isl_set_unwrap(), isl_stat_error, isl_union_map_from_map(), isl_sched_edge::map, map, map_intersect_domains(), merge_edge(), isl_sched_graph::n_edge, set_type, skip_edge(), isl_sched_edge::src, isl_sched_edge::tagged_condition, isl_sched_edge::tagged_validity, isl_extract_edge_data::type, isl_sched_edge::types, and user.
Referenced by isl_sched_graph_init().
|
static |
Definition at line 1160 of file isl_scheduler.c.
References isl_sched_node::compressed, isl_sched_node::hull, isl_map_from_domain_and_range(), isl_set_copy(), isl_set_universe(), isl_space_copy(), and isl_sched_node::space.
Referenced by extract_edge().
|
static |
Definition at line 2230 of file isl_scheduler.c.
References isl_mat_rows(), isl_mat_sub_alloc(), isl_sched_node::nparam, isl_sched_node::nvar, and isl_sched_node::sched.
Referenced by isl_sched_node_update_vmap().
|
static |
Definition at line 1032 of file isl_scheduler.c.
References add_node(), compress(), construct_compressed_id(), isl_sched_node::decompress, has_any_defining_equality(), hull, id, isl_basic_set_free(), isl_basic_set_remove_divs(), isl_basic_set_variable_compression_with_id(), isl_dim_set, isl_id_free(), isl_morph_free(), isl_morph_get_var_multi_aff(), isl_morph_inverse(), isl_morph_ran_dim(), isl_pw_multi_aff_from_multi_aff(), isl_set_affine_hull(), isl_set_copy(), isl_set_dim(), isl_set_free(), isl_set_from_basic_set(), isl_stat_error, isl_sched_graph::n, isl_sched_graph::node, isl_sched_node::nvar, set, and user.
Referenced by isl_sched_graph_init().
|
static |
Definition at line 3019 of file isl_scheduler.c.
References aff, isl_aff_free(), isl_aff_set_coefficient(), isl_aff_set_constant(), isl_aff_zero_on_domain(), isl_dim_in, isl_dim_param, isl_int_clear, isl_int_init, isl_mat_get_element(), isl_sched_node::nparam, isl_sched_node::nvar, and isl_sched_node::sched.
Referenced by isl_sched_node_extract_partial_schedule_multi_aff().
|
static |
Definition at line 3460 of file isl_scheduler.c.
References isl_sched_graph_domain(), isl_union_set_list, node_scc_at_least(), node_scc_at_most(), and isl_sched_graph::src_scc.
Referenced by compute_split_schedule().
|
static |
Definition at line 2930 of file isl_scheduler.c.
References isl_vec::el, isl_int_sub, isl_vec_alloc(), isl_vec_get_ctx(), node_var_coef_offset(), isl_sched_node::nvar, and pos().
Referenced by find_node_coalescing(), is_trivial(), and update_schedule().
|
static |
Definition at line 5401 of file isl_scheduler.c.
References isl_map_from_multi_aff(), isl_mat_rows(), isl_sched_node_extract_partial_schedule_multi_aff(), ma, and isl_sched_node::sched.
Referenced by is_violated().
|
static |
Definition at line 1195 of file isl_scheduler.c.
References isl_map_get_space(), isl_sched_graph_find_node(), isl_space_domain(), isl_space_free(), map, and isl_sched_node::space.
Referenced by extract_edge().
|
static |
Definition at line 4409 of file isl_scheduler.c.
References isl_vec::el, extract_var_coef(), isl_int_abs_gt, isl_int_clear, isl_int_init, isl_int_is_zero, isl_int_mul, isl_val_ceil(), isl_val_div_ui(), isl_val_free(), isl_val_is_int(), isl_vec_free(), isl_sched_node::max, isl_val::n, isl_sched_node::nvar, and isl_sched_node::sizes.
Referenced by non_neg_lexmin().
|
static |
Definition at line 1211 of file isl_scheduler.c.
References isl_map_get_space(), isl_sched_graph_find_node(), isl_space_free(), isl_space_range(), map, and isl_sched_node::space.
Referenced by extract_edge().
|
static |
Definition at line 2124 of file isl_scheduler.c.
References is_coincidence(), and is_local().
Referenced by add_all_proximity_constraints(), add_all_validity_constraints(), edge_multiplicity(), and parametric_intra_edge_multiplicity().
|
static |
Definition at line 1513 of file isl_scheduler.c.
References isl_sched_node::bounds, isl_sched_node::compressed, isl_sched_node::decompress, isl_basic_set_copy(), isl_basic_set_free(), isl_basic_set_lower_bound_val(), isl_basic_set_universe(), isl_basic_set_upper_bound_val(), isl_dim_set, isl_pw_multi_aff_get_domain_space(), isl_space_copy(), isl_space_drop_all_params(), isl_val_copy(), isl_val_free(), isl_val_is_int(), isl_val_neg(), isl_sched_graph::node, isl_sched_node::nvar, size, isl_sched_node::sizes, and isl_sched_node::space.
Referenced by collect_bounds(), and drop_coalescing_constraints().
|
static |
Definition at line 461 of file isl_scheduler.c.
References isl_sched_graph::edge, isl_sched_graph::inter_hmap, isl_sched_graph::intra_hmap, isl_sched_graph::intra_hmap_param, isl_alloc_array, isl_calloc_array, isl_stat_error, isl_stat_ok, isl_sched_graph::n, isl_sched_graph::n_edge, isl_sched_graph::node, isl_sched_graph::region, and isl_sched_graph::sorted.
Referenced by isl_sched_graph_extract_sub_graph(), and isl_sched_graph_init().
|
static |
Definition at line 244 of file isl_scheduler.c.
References isl_hash_table_entry::data, isl_sched_edge::dst, edge_has_src_and_dst(), isl_sched_graph::edge_table, isl_hash_table_entry::hash, isl_hash_builtin, isl_hash_init, isl_hash_table_find(), isl_stat_error, isl_stat_ok, isl_sched_edge::src, and type.
Referenced by extract_edge(), and graph_edge_tables_add().
|
static |
Definition at line 266 of file isl_scheduler.c.
References graph_edge_table_add(), isl_edge_first, isl_edge_last, isl_sched_edge_has_type(), isl_stat_error, isl_stat_ok, and t.
Referenced by copy_edges(), and update_edge().
|
static |
Definition at line 4000 of file isl_scheduler.c.
References id, isl_die, isl_dim_set, isl_error_internal, isl_id_free(), isl_id_get_user(), isl_sched_graph_find_node(), isl_sched_graph_is_node(), isl_space_get_tuple_id(), isl_sched_graph::root, and isl_sched_node::space.
Referenced by collect_bounds(), lp_add_inter(), and lp_add_intra().
|
static |
Definition at line 324 of file isl_scheduler.c.
References isl_hash_table_entry::data, graph_find_edge_entry(), isl_hash_table_entry_none, none, and type.
Referenced by graph_find_matching_edge(), and graph_has_edge().
|
static |
Definition at line 302 of file isl_scheduler.c.
References isl_sched_edge::dst, edge_has_src_and_dst(), isl_sched_graph::edge_table, isl_hash_table_entry::hash, isl_hash_builtin, isl_hash_init, isl_hash_table_find(), isl_space_get_ctx(), isl_sched_node::space, isl_sched_edge::src, and type.
Referenced by graph_find_edge(), and graph_remove_edge().
|
static |
Definition at line 368 of file isl_scheduler.c.
References isl_sched_edge::dst, graph_find_edge(), is_equal(), isl_edge_first, isl_edge_last, isl_map_plain_is_equal(), isl_sched_edge::map, and isl_sched_edge::src.
Referenced by extract_edge().
|
static |
Definition at line 419 of file isl_scheduler.c.
References graph_has_edge(), isl_edge_first, and isl_edge_last.
Referenced by node_follows_weak().
|
static |
Definition at line 343 of file isl_scheduler.c.
References isl_sched_edge::dst, graph_find_edge(), isl_bool_error, isl_bool_false, isl_bool_not(), isl_map_plain_is_empty(), isl_sched_edge::map, isl_sched_edge::src, and type.
Referenced by graph_has_any_edge(), and isl_sched_graph_has_validity_edge().
|
static |
Definition at line 284 of file isl_scheduler.c.
References isl_sched_graph::edge_table, isl_edge_last, isl_hash_table_alloc(), and isl_sched_graph::max_edge.
Referenced by isl_sched_graph_extract_sub_graph(), and isl_sched_graph_init().
|
static |
Definition at line 179 of file isl_scheduler.c.
References isl_hash_table_entry::data, isl_hash_table_entry::hash, isl_hash_table_alloc(), isl_hash_table_find(), isl_space_get_tuple_hash(), isl_sched_graph::n, isl_sched_graph::node, node_has_tuples(), isl_sched_graph::node_table, and isl_sched_node::space.
Referenced by isl_sched_graph_extract_sub_graph(), and isl_sched_graph_init().
|
static |
Definition at line 394 of file isl_scheduler.c.
References isl_hash_table_entry::data, isl_sched_edge::dst, isl_sched_graph::edge_table, graph_find_edge_entry(), isl_edge_first, isl_edge_last, isl_hash_table_entry_none, isl_hash_table_remove(), isl_map_get_ctx(), isl_stat_error, isl_stat_ok, isl_sched_edge::map, and isl_sched_edge::src.
Referenced by update_edge().
|
static |
Definition at line 5450 of file isl_scheduler.c.
References any(), condition, domain_intersects(), isl_sched_graph::edge, is_condition_false(), is_local(), isl_sched_edge_is_condition(), isl_sched_graph::n_edge, range_intersects(), set_local(), and isl_sched_edge::tagged_condition.
Referenced by has_violated_conditional_constraint().
|
static |
Definition at line 5387 of file isl_scheduler.c.
References isl_sched_graph::edge, is_coincidence(), and isl_sched_graph::n_edge.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 588 of file isl_scheduler.c.
References isl_basic_set_dim(), isl_basic_set_has_defining_equality(), isl_bool_error, isl_bool_false, isl_dim_set, and n.
Referenced by extract_node().
|
static |
Definition at line 5308 of file isl_scheduler.c.
References isl_sched_graph::edge, is_any_validity(), isl_map_plain_is_empty(), isl_sched_edge::map, and isl_sched_graph::n_edge.
Referenced by need_feautrier_step().
|
static |
Definition at line 5502 of file isl_scheduler.c.
References any(), isl_sched_graph::edge, has_adjacent_true_conditions(), is_violated(), isl_sched_edge_is_conditional_validity(), isl_space_params_alloc(), isl_union_map_copy(), isl_union_map_domain(), isl_union_map_range(), isl_union_set_coalesce(), isl_union_set_empty(), isl_union_set_free(), isl_union_set_union(), isl_sched_graph::n_edge, and isl_sched_edge::tagged_validity.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 542 of file isl_scheduler.c.
References isl_dim_set, isl_set_dim(), isl_set_free(), isl_stat_error, isl_stat_ok, isl_sched_graph::maxvar, isl_sched_graph::n, set, and user.
Referenced by compute_max_row().
|
static |
Definition at line 3790 of file isl_scheduler.c.
References isl_sched_graph::band_start, isl_sched_node::coincident, isl_die, isl_error_internal, isl_multi_pw_aff_from_multi_aff(), isl_multi_union_pw_aff_from_multi_pw_aff(), isl_multi_union_pw_aff_union_add(), isl_sched_node_extract_partial_schedule_multi_aff(), isl_schedule_node_band_member_set_coincident(), isl_schedule_node_band_set_permutable(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_insert_partial_schedule(), ma, mupa, isl_sched_graph::n, n, isl_sched_graph::n_total_row, isl_sched_graph::node, and isl_sched_node::start.
Referenced by compute_next_band().
|
static |
Definition at line 1132 of file isl_scheduler.c.
References domain, id, isl_dim_set, isl_id_alloc(), isl_map_from_domain_and_range(), isl_map_get_ctx(), isl_map_get_space(), isl_map_universe(), isl_map_wrap(), isl_map_zip(), isl_space_map_from_set(), isl_space_params(), isl_space_set_from_params(), isl_space_set_tuple_id(), map, and range.
Referenced by extract_edge().
|
static |
Definition at line 1668 of file isl_scheduler.c.
References compress(), isl_sched_edge::dst, isl_sched_graph::edge, isl_sched_graph::inter_hmap, isl_basic_set_copy(), isl_map_copy(), isl_map_free(), isl_map_remove_divs(), isl_map_wrap(), isl_maybe_isl_basic_set, isl_set_coefficients(), key, m, map, set, and isl_sched_edge::src.
Referenced by add_inter_proximity_constraints(), add_inter_validity_constraints(), and count_map_constraints().
|
static |
Definition at line 1824 of file isl_scheduler.c.
References isl_basic_set_dim(), isl_dim_all, isl_dim_map_alloc(), isl_dim_map_range(), isl_sched_graph::lp, node_cst_coef_offset(), node_par_coef_offset(), node_var_coef_pos(), isl_sched_node::nparam, isl_sched_node::nvar, offset, pos(), and total().
Referenced by add_inter_constraints(), add_inter_proximity_constraints(), and add_inter_validity_constraints().
|
static |
Definition at line 3150 of file isl_scheduler.c.
References isl_map_copy(), isl_map_wrap(), isl_union_map_intersect_domain(), isl_union_map_zip(), isl_union_set_from_set(), and map.
Referenced by update_edge().
|
static |
Definition at line 1620 of file isl_scheduler.c.
References compress(), drop_coalescing_constraints(), hmap, isl_sched_graph::intra_hmap, isl_sched_graph::intra_hmap_param, isl_basic_set_copy(), isl_map_copy(), isl_map_deltas(), isl_map_free(), isl_map_get_ctx(), isl_maybe_isl_basic_set, isl_options_get_schedule_treat_coalescing(), isl_set_coefficients(), isl_set_remove_divs(), key, m, map, and isl_sched_graph::node.
Referenced by add_intra_proximity_constraints(), add_intra_validity_constraints(), and count_map_constraints().
|
static |
Definition at line 1784 of file isl_scheduler.c.
References isl_basic_set_dim(), isl_dim_all, isl_dim_map_alloc(), isl_dim_map_range(), isl_sched_graph::lp, isl_sched_graph::node, node_var_coef_pos(), isl_sched_node::nvar, offset, pos(), and total().
Referenced by add_intra_constraints(), add_intra_proximity_constraints(), and add_intra_validity_constraints().
|
static |
Definition at line 4381 of file isl_scheduler.c.
References is_trivial(), isl_sched_graph::n, needs_row(), and isl_sched_graph::node.
Referenced by carry().
|
static |
Definition at line 2291 of file isl_scheduler.c.
References is_validity(), and isl_sched_edge_is_conditional_validity().
Referenced by collect_validity(), and has_validity_edges().
|
static |
Definition at line 145 of file isl_scheduler.c.
References isl_edge_coincidence, and isl_sched_edge_has_type().
Referenced by collect_validity(), force_zero(), and has_any_coincidence().
|
static |
Definition at line 3255 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_map_apply_domain(), isl_map_apply_range(), isl_map_free(), isl_map_from_union_map(), isl_map_get_space(), isl_map_identity(), isl_map_is_subset(), isl_union_map_copy(), isl_union_map_domain(), isl_union_map_is_empty(), isl_union_map_zip(), isl_union_set_unwrap(), map, node_extract_schedule(), isl_sched_node::sched, isl_sched_edge::src, isl_sched_edge::tagged_condition, and test.
Referenced by has_adjacent_true_conditions(), and update_edges().
|
static |
Definition at line 124 of file isl_scheduler.c.
References isl_edge_local, and isl_sched_edge_has_type().
Referenced by force_zero(), has_adjacent_true_conditions(), and update_edges().
|
static |
Definition at line 171 of file isl_scheduler.c.
References isl_sched_edge_is_condition(), and isl_sched_edge_is_conditional_validity().
Referenced by update_edge().
|
static |
Definition at line 4354 of file isl_scheduler.c.
References isl_vec::el, extract_var_coef(), isl_sched_node::indep, isl_mat_copy(), isl_mat_vec_product(), isl_seq_first_non_zero(), isl_vec_free(), isl_sched_node::nvar, and isl_sched_node::rank.
Referenced by is_any_trivial(), and region_is_trivial().
|
static |
Definition at line 103 of file isl_scheduler.c.
References isl_edge_validity, and isl_sched_edge_has_type().
Referenced by add_all_proximity_constraints(), add_all_validity_constraints(), check_conflict(), copy_edges(), edge_multiplicity(), is_any_validity(), parametric_intra_edge_multiplicity(), and unconditionalize_adjacent_validity().
|
static |
Definition at line 5419 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_sched_graph::edge, final_row(), isl_dim_in, isl_dim_out, isl_map_apply_domain(), isl_map_apply_range(), isl_map_copy(), isl_map_free(), isl_map_is_empty(), isl_map_order_gt(), isl_sched_edge::map, map, and isl_sched_edge::src.
Referenced by has_violated_conditional_constraint().
|
static |
Definition at line 3977 of file isl_scheduler.c.
References carry(), isl_union_map_free(), and isl_union_set_free().
Referenced by compute_carrying_sol().
int isl_sched_edge_has_type | ( | struct isl_sched_edge * | edge, |
enum isl_edge_type | type | ||
) |
Definition at line 81 of file isl_scheduler.c.
References ISL_FL_ISSET, type, and isl_sched_edge::types.
Referenced by add_conditional_constraints(), add_non_conditional_constraints(), graph_edge_tables_add(), is_coincidence(), is_local(), is_validity(), isl_sched_edge_is_condition(), isl_sched_edge_is_conditional_validity(), and isl_sched_edge_is_proximity().
int isl_sched_edge_is_condition | ( | struct isl_sched_edge * | edge | ) |
Definition at line 152 of file isl_scheduler.c.
References isl_edge_condition, and isl_sched_edge_has_type().
Referenced by clear_local_edges(), collect_edge_constraints(), has_adjacent_true_conditions(), is_multi_edge_type(), merge_edge(), need_condition_check(), and update_edges().
int isl_sched_edge_is_conditional_validity | ( | struct isl_sched_edge * | edge | ) |
Definition at line 159 of file isl_scheduler.c.
References isl_edge_conditional_validity, and isl_sched_edge_has_type().
Referenced by collect_edge_constraints(), copy_edges(), has_violated_conditional_constraint(), is_any_validity(), is_multi_edge_type(), merge_edge(), need_condition_check(), and unconditionalize_adjacent_validity().
int isl_sched_edge_is_proximity | ( | struct isl_sched_edge * | edge | ) |
Definition at line 117 of file isl_scheduler.c.
References isl_edge_proximity, and isl_sched_edge_has_type().
Referenced by add_all_proximity_constraints(), edge_multiplicity(), is_non_empty_proximity(), ok_to_merge_proximity(), and parametric_intra_edge_multiplicity().
int isl_sched_edge_scc_exactly | ( | struct isl_sched_edge * | edge, |
int | scc | ||
) |
Definition at line 3694 of file isl_scheduler.c.
References isl_sched_edge::dst, isl_sched_graph::edge, isl_sched_node::scc, isl_sched_graph::scc, and isl_sched_edge::src.
Referenced by clustering_init(), and compute_component_schedule().
isl_stat isl_sched_graph_compute_maxvar | ( | struct isl_sched_graph * | graph | ) |
Definition at line 3594 of file isl_scheduler.c.
References isl_sched_node_update_vmap(), isl_stat_error, isl_stat_ok, isl_sched_graph::maxvar, isl_sched_graph::n, isl_sched_graph::n_row, isl_sched_graph::node, isl_sched_node::nvar, and isl_sched_node::rank.
Referenced by clustering_init(), compute_component_schedule(), compute_schedule_wcc(), isl_schedule_node_compute_finish_band(), sort_statements(), and try_merge().
isl_stat isl_sched_graph_detect_ccs | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph, | ||
isl_bool(*)(int i, int j, void *user) | follows | ||
) |
Definition at line 1438 of file isl_scheduler.c.
References isl_stat_error, isl_stat_ok, isl_tarjan_graph_free(), isl_tarjan_graph_init(), isl_sched_graph::n, n, isl_sched_graph::node, isl_tarjan_graph::order, isl_sched_node::scc, and isl_sched_graph::scc.
Referenced by detect_sccs(), detect_wccs(), and extract_clusters().
|
static |
Definition at line 3398 of file isl_scheduler.c.
References isl_die, isl_error_internal, isl_set_universe(), isl_space_copy(), isl_union_set_from_set(), isl_union_set_union(), isl_sched_graph::n, isl_sched_graph::node, set, and isl_sched_node::space.
Referenced by extract_split(), and isl_sched_graph_extract_scc().
__isl_give isl_union_set * isl_sched_graph_extract_scc | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph, | ||
int | scc | ||
) |
Definition at line 3430 of file isl_scheduler.c.
References isl_sched_graph_domain(), isl_sched_node_scc_exactly(), and isl_sched_node::scc.
Referenced by isl_scc_graph_extract_local_scc(), and isl_sched_graph_extract_sccs().
__isl_give isl_union_set_list * isl_sched_graph_extract_sccs | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph | ||
) |
Definition at line 3440 of file isl_scheduler.c.
References isl_sched_graph_extract_scc(), isl_union_set_list, and isl_sched_graph::scc.
Referenced by compute_component_schedule(), finish_bands_clustering(), and sort_statements().
isl_stat isl_sched_graph_extract_sub_graph | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph, | ||
int(*)(struct isl_sched_node *node, int data) | node_pred, | ||
int(*)(struct isl_sched_edge *edge, int data) | edge_pred, | ||
int | data, | ||
struct isl_sched_graph * | sub | ||
) |
Definition at line 3617 of file isl_scheduler.c.
References isl_sched_graph::band_start, copy_edges(), copy_nodes(), isl_sched_graph::edge, graph_alloc(), graph_init_edge_tables(), graph_init_table(), if(), isl_edge_last, isl_stat_error, isl_stat_ok, isl_sched_graph::max_edge, isl_sched_graph::max_row, isl_sched_graph::n, n, isl_sched_graph::n_edge, isl_sched_graph::n_row, isl_sched_graph::n_total_row, isl_sched_graph::node, isl_sched_graph::root, sub(), and t.
Referenced by clustering_init(), compute_sub_schedule(), and extract_clusters().
struct isl_sched_node * isl_sched_graph_find_node | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph, | ||
__isl_keep isl_space * | space | ||
) |
Definition at line 206 of file isl_scheduler.c.
References isl_hash_table_entry::data, isl_hash_table_entry::hash, isl_hash_table_entry_none, isl_hash_table_find(), isl_space_get_tuple_hash(), isl_sched_graph::n, isl_sched_graph::node, node_has_tuples(), and isl_sched_graph::node_table.
Referenced by copy_edges(), extract_node_transformation(), find_domain_node(), find_range_node(), graph_find_compressed_node(), and merge().
void isl_sched_graph_free | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph | ||
) |
Definition at line 512 of file isl_scheduler.c.
References clear_node(), isl_sched_graph::edge, isl_sched_graph::edge_table, isl_sched_graph::inter_hmap, isl_sched_graph::intra_hmap, isl_sched_graph::intra_hmap_param, isl_basic_set_free(), isl_edge_last, isl_hash_table_free(), isl_map_free(), isl_union_map_free(), isl_sched_graph::lp, isl_sched_edge::map, isl_sched_graph::n, isl_sched_graph::n_edge, isl_sched_graph::node, isl_sched_graph::node_table, isl_sched_graph::region, isl_sched_graph::sorted, isl_sched_edge::tagged_condition, and isl_sched_edge::tagged_validity.
Referenced by clustering_free(), compute_sub_schedule(), isl_schedule_constraints_compute_schedule(), and try_merge().
isl_bool isl_sched_graph_has_validity_edge | ( | struct isl_sched_graph * | graph, |
struct isl_sched_node * | src, | ||
struct isl_sched_node * | dst | ||
) |
Definition at line 445 of file isl_scheduler.c.
References graph_has_edge(), isl_edge_conditional_validity, and isl_edge_validity.
Referenced by cluster_follows(), node_follows_strong(), and node_follows_strong_or_same_cluster().
isl_stat isl_sched_graph_init | ( | struct isl_sched_graph * | graph, |
__isl_keep isl_schedule_constraints * | sc | ||
) |
Definition at line 1342 of file isl_scheduler.c.
References compute_max_row(), domain, extract_edge(), extract_node(), isl_extract_edge_data::graph, graph_alloc(), graph_init_edge_tables(), graph_init_table(), isl_edge_first, isl_edge_last, isl_schedule_constraints_get(), isl_schedule_constraints_get_context(), isl_schedule_constraints_get_ctx(), isl_schedule_constraints_get_domain(), isl_schedule_constraints_n_map(), isl_stat_error, isl_stat_ok, isl_union_map_foreach_map(), isl_union_map_free(), isl_union_map_n_map(), isl_union_set_foreach_set(), isl_union_set_free(), isl_union_set_intersect_params(), isl_union_set_n_set(), isl_sched_graph::max_edge, isl_sched_graph::n, n, isl_sched_graph::n_edge, isl_sched_graph::root, and isl_extract_edge_data::type.
Referenced by init_merge_graph(), and isl_schedule_constraints_compute_schedule().
int isl_sched_graph_is_node | ( | struct isl_sched_graph * | graph, |
struct isl_sched_node * | node | ||
) |
Definition at line 228 of file isl_scheduler.c.
References isl_sched_graph::n, and isl_sched_graph::node.
Referenced by copy_edges(), extract_edge(), extract_node_transformation(), graph_find_compressed_node(), and merge().
__isl_give isl_multi_aff * isl_sched_node_extract_partial_schedule_multi_aff | ( | struct isl_sched_node * | node, |
int | first, | ||
int | n | ||
) |
Definition at line 3058 of file isl_scheduler.c.
References aff, isl_sched_node::compress, isl_sched_node::compressed, isl_sched_node::decompress, extract_schedule_row(), isl_dim_out, isl_local_space_copy(), isl_local_space_free(), isl_local_space_from_space(), isl_mat_rows(), isl_multi_aff_pullback_multi_aff(), isl_pw_multi_aff_get_domain_space(), isl_space_add_dims(), isl_space_copy(), isl_space_from_domain(), ma, n, isl_sched_node::sched, and isl_sched_node::space.
Referenced by collect_cluster_map(), extract_node_transformation(), final_row(), insert_current_band(), and node_extract_schedule_multi_aff().
int isl_sched_node_scc_exactly | ( | struct isl_sched_node * | node, |
int | scc | ||
) |
Definition at line 64 of file isl_scheduler.c.
References isl_sched_node::scc.
Referenced by clustering_init(), compute_component_schedule(), and isl_sched_graph_extract_scc().
isl_stat isl_sched_node_update_vmap | ( | struct isl_sched_node * | node | ) |
Definition at line 2268 of file isl_scheduler.c.
References extract_linear_schedule(), isl_sched_node::indep, isl_mat_drop_rows(), isl_mat_free(), isl_mat_initial_non_zero_cols(), isl_mat_left_hermite(), isl_mat_transpose(), isl_stat_error, isl_stat_ok, normalize_independent(), isl_sched_node::rank, and isl_sched_node::vmap.
Referenced by compute_maxvar_max_slack(), isl_sched_graph_compute_maxvar(), limit_maxvar_to_slack(), and setup_lp().
__isl_give isl_schedule * isl_schedule_constraints_compute_schedule | ( | __isl_take isl_schedule_constraints * | sc | ) |
Definition at line 5875 of file isl_scheduler.c.
References compute_schedule(), domain, isl_sched_graph_free(), isl_sched_graph_init(), isl_schedule_constraints_align_params(), isl_schedule_constraints_free(), isl_schedule_constraints_get_ctx(), isl_schedule_constraints_get_domain(), isl_schedule_from_domain(), isl_schedule_node_child(), isl_schedule_node_free(), isl_schedule_node_from_domain(), isl_schedule_node_get_schedule(), isl_union_set_free(), isl_union_set_n_set(), isl_sched_graph::n, n, and isl_sched_graph::node.
Referenced by isl::schedule_constraints::compute_schedule(), compute_schedule_with_context(), isl_union_set_compute_schedule(), main(), test_coalescing_schedule(), test_conditional_schedule_constraints(), test_one_schedule(), test_padded_schedule(), test_special_conditional_schedule_constraints(), and test_special_conditional_schedule_constraints_2().
__isl_give isl_schedule_node * isl_schedule_node_compute_finish_band | ( | __isl_take isl_schedule_node * | node, |
struct isl_sched_graph * | graph, | ||
int | initialized | ||
) |
Definition at line 5583 of file isl_scheduler.c.
References isl_sched_graph::band_start, carry_coincidence(), carry_dependences(), compute_component_schedule(), compute_next_band(), compute_split_schedule(), isl_options_get_schedule_outer_coincidence(), isl_sched_graph_compute_maxvar(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_sched_graph::maxvar, isl_sched_graph::n_row, isl_sched_graph::n_total_row, isl_ctx::opt, isl_sched_graph::scc, isl_options::schedule_maximize_band_depth, sort_statements(), and isl_sched_graph::src_scc.
Referenced by compute_schedule_wcc_whole(), finish_bands_clustering(), and isl_scc_graph_finish_band().
isl_stat isl_schedule_node_compute_wcc_band | ( | isl_ctx * | ctx, |
struct isl_sched_graph * | graph | ||
) |
Definition at line 5649 of file isl_scheduler.c.
References isl_sched_graph::band_start, clear_local_edges(), isl_sched_graph::dst_scc, has_any_coincidence(), has_violated_conditional_constraint(), isl_stat_error, isl_stat_ok, isl_vec_free(), isl_sched_graph::maxvar, isl_sched_graph::n_row, isl_sched_graph::n_total_row, need_condition_check(), isl_ctx::opt, reset_band(), isl_options::schedule_outer_coincidence, setup_lp(), isl_vec::size, solve_lp(), sort_sccs(), isl_sched_graph::src_scc, and update_schedule().
Referenced by clustering_init(), compute_schedule_wcc_whole(), and try_merge().
__isl_give isl_schedule * isl_union_set_compute_schedule | ( | __isl_take isl_union_set * | domain, |
__isl_take isl_union_map * | validity, | ||
__isl_take isl_union_map * | proximity | ||
) |
Definition at line 5916 of file isl_scheduler.c.
References domain, isl_schedule_constraints_compute_schedule(), isl_schedule_constraints_on_domain(), isl_schedule_constraints_set_proximity(), and isl_schedule_constraints_set_validity().
|
static |
Definition at line 732 of file isl_scheduler.c.
References isl_dim_in, isl_dim_set, isl_map_project_out(), isl_set_project_onto_map(), map, pos(), and set.
Referenced by add_loop_types(), compute_size(), extract_loop_type(), isl_schedule_band_get_ast_isolate_option(), isl_schedule_tree_band_split(), isolate_final(), isolate_initial(), loop_type_space(), loop_types(), and project_out_fixed().
|
static |
Definition at line 4083 of file isl_scheduler.c.
References add_inter_constraints(), isl_add_all_constraints_data::carry_inter, isl_add_all_constraints_data::ctx, isl_add_all_constraints_data::graph, graph_find_compressed_node(), isl_basic_set_get_space(), isl_space_copy(), isl_space_domain(), isl_space_free(), isl_space_range(), isl_space_unwrap(), pos(), isl_add_all_constraints_data::pos, isl_sched_node::space, and user.
Referenced by add_all_constraints().
|
static |
Definition at line 4059 of file isl_scheduler.c.
References add_intra_constraints(), isl_add_all_constraints_data::ctx, isl_add_all_constraints_data::graph, graph_find_compressed_node(), isl_basic_set_get_space(), isl_space_free(), isl_space_range(), isl_space_unwrap(), isl_add_all_constraints_data::pos, isl_sched_node::space, and user.
Referenced by add_all_constraints().
|
static |
Definition at line 1180 of file isl_scheduler.c.
References isl_map_copy(), isl_map_intersect_domain(), isl_map_wrap(), isl_map_zip(), map, and set.
Referenced by extract_edge().
|
static |
Definition at line 1086 of file isl_scheduler.c.
References isl_map_free(), isl_sched_edge_is_condition(), isl_sched_edge_is_conditional_validity(), isl_union_map_union(), isl_sched_edge::map, isl_sched_edge::tagged_condition, isl_sched_edge::tagged_validity, and isl_sched_edge::types.
Referenced by any_no_merge(), and extract_edge().
|
static |
Definition at line 5369 of file isl_scheduler.c.
References isl_sched_graph::edge, isl_sched_edge_is_condition(), isl_sched_edge_is_conditional_validity(), and isl_sched_graph::n_edge.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 5331 of file isl_scheduler.c.
References has_validity_edges(), ISL_SCHEDULE_ALGORITHM_FEAUTRIER, isl_ctx::opt, and isl_options::schedule_algorithm.
Referenced by compute_schedule_wcc().
|
static |
Definition at line 2847 of file isl_scheduler.c.
References isl_sched_graph::maxvar, isl_sched_graph::n_row, isl_sched_graph::node, isl_sched_node::nvar, and isl_sched_node::rank.
Referenced by is_any_trivial(), and solve_lp().
|
static |
Definition at line 3390 of file isl_scheduler.c.
References isl_sched_graph::band_start, and isl_sched_graph::n_total_row.
Referenced by compute_next_band(), compute_split_schedule(), and sort_statements().
|
static |
Definition at line 2547 of file isl_scheduler.c.
References isl_vec::el, isl_basic_set_alloc_inequality(), isl_basic_set_dim(), isl_dim_set, isl_int_is_neg, isl_int_set, isl_int_set_si, isl_seq_clr(), isl_seq_cpy(), isl_seq_neg(), isl_stat_error, isl_stat_ok, isl_vec_alloc(), isl_vec_clr(), isl_vec_free(), isl_sched_graph::lp, isl_sched_node::max, node_par_coef_offset(), node_var_coef_pos(), isl_sched_node::nparam, isl_sched_node::nvar, pos(), and total().
Referenced by add_bound_coefficient_constraints().
|
static |
Definition at line 1722 of file isl_scheduler.c.
References isl_sched_graph::node, isl_sched_node::nparam, isl_sched_node::nvar, and isl_sched_node::start.
Referenced by add_bound_constant_constraints(), inter_dim_map(), and update_schedule().
|
static |
Definition at line 3117 of file isl_scheduler.c.
References isl_map_copy(), isl_map_from_multi_aff(), ma, node_extract_schedule_multi_aff(), and isl_sched_node::sched_map.
Referenced by is_condition_false(), and specializer().
|
static |
Definition at line 3100 of file isl_scheduler.c.
References isl_mat_rows(), isl_sched_node_extract_partial_schedule_multi_aff(), and isl_sched_node::sched.
Referenced by node_extract_schedule().
|
static |
Definition at line 1427 of file isl_scheduler.c.
References isl_sched_graph_has_validity_edge(), isl_sched_graph::node, and user.
Referenced by detect_sccs().
|
static |
Definition at line 1413 of file isl_scheduler.c.
References f, graph_has_any_edge(), isl_sched_graph::node, and user.
Referenced by detect_wccs().
|
static |
Definition at line 56 of file isl_scheduler.c.
References isl_space_has_equal_tuples(), isl_sched_node::space, and val.
Referenced by graph_init_table(), and isl_sched_graph_find_node().
|
static |
Definition at line 1735 of file isl_scheduler.c.
References isl_sched_graph::node, isl_sched_node::nvar, and isl_sched_node::start.
Referenced by add_param_sum_constraint(), inter_dim_map(), node_add_coefficient_constraints(), and update_schedule().
|
static |
Definition at line 74 of file isl_scheduler.c.
References isl_sched_node::scc.
Referenced by compute_split_schedule(), and extract_split().
|
static |
Definition at line 69 of file isl_scheduler.c.
References isl_sched_node::scc.
Referenced by compute_split_schedule(), and extract_split().
|
static |
Definition at line 1748 of file isl_scheduler.c.
References isl_sched_graph::node, and isl_sched_node::start.
Referenced by add_var_sum_constraint(), extract_var_coef(), node_var_coef_pos(), and solve_lp().
|
static |
Definition at line 1759 of file isl_scheduler.c.
References isl_sched_graph::node, node_var_coef_offset(), and isl_sched_node::nvar.
Referenced by inter_dim_map(), intra_dim_map(), node_add_coefficient_constraints(), and zero_out_node_coef().
|
static |
Definition at line 4495 of file isl_scheduler.c.
References isl_die, isl_error_internal, isl_tab_lexmin_get_solution(), isl_vec_free(), isl_vec_get_ctx(), and isl_vec::size.
Referenced by non_neg_lexmin().
|
static |
Definition at line 4569 of file isl_scheduler.c.
References carries_dependences(), isl_vec::el, find_node_coalescing(), isl_basic_set_get_ctx(), isl_int_is_one, isl_options_get_schedule_treat_coalescing(), isl_tab_lexmin_cut_to_integer(), isl_tab_lexmin_free(), isl_tab_lexmin_from_basic_set(), isl_vec_alloc(), isl_vec_free(), isl_sched_graph::n, n, isl_sched_graph::node, non_empty_solution(), isl_sched_node::nvar, pos(), and zero_out_node_coef().
Referenced by compute_carrying_sol_coef().
|
static |
Definition at line 2221 of file isl_scheduler.c.
References isl_mat_lexnonneg_rows(), and isl_mat_reverse_gauss().
Referenced by isl_sched_node_update_vmap().
|
static |
Definition at line 2330 of file isl_scheduler.c.
References isl_sched_edge::dst, force_zero(), is_validity(), isl_sched_edge_is_proximity(), and isl_sched_edge::src.
Referenced by count_map_constraints().
|
static |
Definition at line 838 of file isl_scheduler.c.
References compress(), compress_node(), construct_compressed_id(), domain, hull, id, isl_dim_out, isl_dim_set, isl_map_from_pw_multi_aff(), isl_map_range(), isl_multi_aff_project_out_map(), isl_multi_pw_aff_from_pw_multi_aff(), isl_pw_multi_aff_copy(), isl_pw_multi_aff_domain(), isl_pw_multi_aff_from_map(), isl_pw_multi_aff_from_multi_pw_aff(), isl_pw_multi_aff_get_domain_space(), isl_pw_multi_aff_gist(), isl_pw_multi_aff_pullback_multi_aff(), isl_pw_multi_aff_reset_space(), isl_set_copy(), isl_set_free(), isl_set_get_space(), isl_space_map_from_set(), isl_space_reverse(), isolate(), map, isl_sched_graph::node, pma, pos(), and set.
Referenced by compute_sizes().
|
static |
Definition at line 3234 of file isl_scheduler.c.
References isl_union_map_copy(), isl_union_map_free(), isl_union_map_intersect_range(), isl_union_map_is_empty(), and isl_union_set_copy().
Referenced by has_adjacent_true_conditions(), and unconditionalize_adjacent_validity().
|
static |
Definition at line 3711 of file isl_scheduler.c.
References isl_sched_graph::band_start, drop(), isl_map_free(), isl_mat_drop_rows(), isl_stat_error, isl_stat_ok, isl_sched_graph::n, isl_sched_graph::n_row, isl_sched_graph::n_total_row, isl_sched_graph::node, isl_sched_node::sched, and isl_sched_node::sched_map.
Referenced by compute_split_schedule(), and isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 131 of file isl_scheduler.c.
References isl_edge_local, and set_type.
Referenced by has_adjacent_true_conditions().
|
static |
Definition at line 612 of file isl_scheduler.c.
References isl_options_get_schedule_max_coefficient(), isl_stat_error, isl_stat_ok, isl_vec_alloc(), isl_vec_set_si(), isl_sched_node::max, isl_sched_graph::node, and isl_sched_node::nvar.
Referenced by compute_sizes_and_max().
|
static |
Definition at line 89 of file isl_scheduler.c.
References ISL_FL_SET, type, and isl_sched_edge::types.
|
static |
Definition at line 110 of file isl_scheduler.c.
References isl_edge_validity, and set_type.
Referenced by unconditionalize_adjacent_validity().
|
static |
Definition at line 4198 of file isl_scheduler.c.
References add_all_constraints(), add_param_sum_constraint(), add_var_sum_constraint(), count_all_constraints(), isl_basic_set_alloc_equality(), isl_basic_set_alloc_inequality(), isl_basic_set_alloc_space(), isl_basic_set_free(), isl_basic_set_set_rational(), isl_int_set_si, isl_seq_clr(), isl_space_set_alloc(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_graph::n, isl_sched_count::n_eq, isl_sched_count::n_ineq, isl_sched_graph::node, isl_sched_node::nparam, isl_sched_node::nvar, isl_sched_graph::sorted, isl_sched_node::space, isl_sched_node::start, and total().
Referenced by compute_carrying_sol_coef().
|
static |
Definition at line 2748 of file isl_scheduler.c.
References add_all_proximity_constraints(), add_all_validity_constraints(), add_bound_coefficient_constraints(), add_bound_constant_constraints(), add_param_sum_constraint(), add_sum_constraint(), add_var_sum_constraint(), count_bound_coefficient_constraints(), count_bound_constant_constraints(), count_constraints(), isl_basic_set_alloc_space(), isl_basic_set_free(), isl_dim_param, isl_sched_node_update_vmap(), isl_space_dim(), isl_space_set_alloc(), isl_stat_error, isl_stat_ok, isl_sched_graph::lp, isl_sched_graph::n, isl_sched_graph::node, isl_sched_node::nparam, isl_sched_node::nvar, isl_ctx::opt, isl_options::schedule_parametric, isl_sched_graph::sorted, isl_sched_node::space, isl_sched_node::start, and total().
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 1228 of file isl_scheduler.c.
References isl_map_free(), isl_stat_ok, and map.
Referenced by extract_edge().
|
static |
Definition at line 2895 of file isl_scheduler.c.
References check_conflict(), construct_trivial(), isl_sched_node::indep, isl_basic_set_copy(), isl_mat_free(), isl_mat_zero(), isl_tab_basic_set_non_trivial_lexmin(), isl_sched_graph::lp, isl_sched_graph::n, needs_row(), isl_sched_graph::node, node_var_coef_offset(), isl_trivial_region::pos, isl_sched_graph::region, and isl_trivial_region::trivial.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 1498 of file isl_scheduler.c.
References cmp_scc(), isl_sort(), isl_sched_graph::n, and isl_sched_graph::sorted.
Referenced by isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 5265 of file isl_scheduler.c.
References carry_dependences(), detect_sccs(), isl_die, isl_error_internal, isl_sched_graph_compute_maxvar(), isl_sched_graph_extract_sccs(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_insert_sequence(), isl_union_set_list, isl_sched_graph::n, isl_sched_graph::n_edge, next_band(), isl_sched_graph::scc, and update_edges().
Referenced by isl_schedule_node_compute_finish_band().
|
static |
Definition at line 3137 of file isl_scheduler.c.
References isl_map_apply_range(), isl_map_reverse(), and node_extract_schedule().
Referenced by update_edge().
|
static |
Definition at line 4274 of file isl_scheduler.c.
References compute_next_band(), gcd(), isl_int_clear, isl_int_cmp_si, isl_int_fdiv_q, isl_int_gcd, isl_int_init, isl_int_mul, isl_int_set_si, isl_mat_cols(), isl_mat_rows(), isl_mat_scale_down_row(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_seq_gcd(), isl_sched_graph::n, n, isl_sched_graph::node, isl_ctx::opt, isl_mat::row, isl_sched_node::sched, and isl_options::schedule_split_scaled.
Referenced by carry().
|
static |
Definition at line 3287 of file isl_scheduler.c.
References domain_intersects(), isl_sched_graph::edge, is_validity(), isl_sched_edge_is_conditional_validity(), isl_union_set_coalesce(), isl_union_set_free(), isl_sched_graph::n_edge, range_intersects(), set_validity(), and isl_sched_edge::tagged_validity.
Referenced by update_edges().
|
static |
Definition at line 4718 of file isl_scheduler.c.
References isl_collect_bounds_data::bounds, collect_bounds(), isl_collect_bounds_data::ctx, isl_collect_bounds_data::graph, isl_space_params_alloc(), isl_union_set_empty(), isl_union_set_foreach_set(), isl_union_set_free(), and isl_union_set_plain_gist().
Referenced by collect_intra_validity().
|
static |
Definition at line 2348 of file isl_scheduler.c.
References isl_basic_set_free(), isl_basic_set_n_equality(), isl_basic_set_n_inequality(), isl_stat_error, and isl_stat_ok.
Referenced by bset_update_count(), and count_map_constraints().
|
static |
Definition at line 3175 of file isl_scheduler.c.
References isl_sched_edge::dst, graph_edge_tables_add(), graph_remove_edge(), id, intersect_domains(), is_multi_edge_type(), isl_map_copy(), isl_map_free(), isl_map_intersect(), isl_map_plain_is_empty(), isl_stat_error, isl_stat_ok, isl_sched_edge::map, specializer(), isl_sched_edge::src, isl_sched_edge::tagged_condition, and isl_sched_edge::tagged_validity.
Referenced by update_edges().
|
static |
Definition at line 3339 of file isl_scheduler.c.
References any(), isl_sched_graph::edge, is_condition_false(), is_local(), isl_sched_edge_is_condition(), isl_space_params_alloc(), isl_union_map_copy(), isl_union_map_domain(), isl_union_map_range(), isl_union_set_empty(), isl_union_set_free(), isl_union_set_union(), isl_sched_graph::n_edge, isl_sched_edge::tagged_condition, unconditionalize_adjacent_validity(), and update_edge().
Referenced by compute_next_band(), and sort_statements().
|
static |
Definition at line 2961 of file isl_scheduler.c.
References isl_sched_node::coincident, isl_vec::el, extract_var_coef(), isl_die, isl_error_internal, isl_map_free(), isl_mat_add_rows(), isl_mat_rows(), isl_mat_set_element(), isl_vec_free(), isl_sched_graph::max_row, isl_sched_graph::n, isl_sched_graph::n_row, isl_sched_graph::n_total_row, isl_sched_graph::node, node_cst_coef_offset(), node_par_coef_offset(), isl_sched_node::nparam, isl_sched_node::nvar, pos(), isl_sched_node::sched, and isl_sched_node::sched_map.
Referenced by carry(), and isl_schedule_node_compute_wcc_band().
|
static |
Definition at line 4466 of file isl_scheduler.c.
References isl_vec::el, isl_int_set_si, isl_space_get_ctx(), isl_tab_lexmin_add_eq(), isl_tab_lexmin_dim(), isl_tab_lexmin_free(), isl_vec_alloc(), isl_vec_clr(), isl_vec_free(), node_var_coef_pos(), pos(), and isl_sched_node::space.
Referenced by non_neg_lexmin().