GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | poly_dr |
struct | poly_scattering |
struct | poly_bb |
struct | lst |
struct | scop |
Typedefs | |
typedef struct poly_dr * | poly_dr_p |
typedef struct poly_bb * | poly_bb_p |
typedef struct scop * | scop_p |
typedef unsigned | graphite_dim_t |
typedef struct poly_scattering * | poly_scattering_p |
typedef struct lst * | lst_p |
Enumerations | |
enum | poly_dr_type { PDR_READ, PDR_WRITE, PDR_MAY_WRITE } |
typedef unsigned graphite_dim_t |
typedef struct poly_scattering* poly_scattering_p |
enum poly_dr_type |
bool apply_poly_transforms | ( | scop_p | ) |
void cloog_checksum | ( | scop_p | ) |
void compute_deps | ( | scop_p | scop, |
vec< poly_bb_p > | pbbs, | ||
isl_union_map ** | must_raw, | ||
isl_union_map ** | may_raw, | ||
isl_union_map ** | must_raw_no_source, | ||
isl_union_map ** | may_raw_no_source, | ||
isl_union_map ** | must_war, | ||
isl_union_map ** | may_war, | ||
isl_union_map ** | must_war_no_source, | ||
isl_union_map ** | may_war_no_source, | ||
isl_union_map ** | must_waw, | ||
isl_union_map ** | may_waw, | ||
isl_union_map ** | must_waw_no_source, | ||
isl_union_map ** | may_waw_no_source | ||
) |
Compute the original data dependences in SCOP for all the reads and writes in PBBS.
Referenced by scop_get_dependences().
|
inlinestatic |
Returns a copy of LST.
References lst_depth(), lst_dewey_number(), and lst_dewey_number_at_depth().
void debug_cloog | ( | scop_p | , |
int | |||
) |
void debug_generated_program | ( | scop_p | ) |
void debug_gmp_value | ( | mpz_t | ) |
void debug_isl_aff | ( | isl_aff * | ) |
void debug_isl_constraint | ( | isl_constraint * | ) |
void debug_isl_map | ( | isl_map * | ) |
void debug_isl_set | ( | isl_set * | ) |
void debug_iteration_domain | ( | poly_bb_p | , |
int | |||
) |
void debug_iteration_domains | ( | scop_p | , |
int | |||
) |
void debug_loop_vec | ( | poly_bb_p | ) |
void debug_lst | ( | lst_p | ) |
void debug_pbb | ( | poly_bb_p | , |
int | |||
) |
void debug_pbb_domain | ( | poly_bb_p | , |
int | |||
) |
void debug_pdr | ( | poly_dr_p | , |
int | |||
) |
void debug_pdrs | ( | poly_bb_p | , |
int | |||
) |
void debug_scattering_function | ( | poly_bb_p | , |
int | |||
) |
void debug_scattering_functions | ( | scop_p | , |
int | |||
) |
void debug_scop | ( | scop_p | , |
int | |||
) |
void debug_scop_context | ( | scop_p | , |
int | |||
) |
void debug_scop_params | ( | scop_p | , |
int | |||
) |
void dot_lst | ( | lst_p | ) |
__isl_give isl_union_map* extend_schedule | ( | __isl_take isl_union_map * | ) |
|
inlinestatic |
Return the LST node corresponding to the loop around STMT at depth LOOP_DEPTH.
bool flatten_all_loops | ( | scop_p | ) |
|
inlinestatic |
Frees the memory used by LST.
Referenced by lst_insert_in_sequence(), lst_perfect_nestify(), and lst_replace().
void free_poly_bb | ( | poly_bb_p | ) |
void free_poly_dr | ( | poly_dr_p | ) |
void free_scop | ( | scop_p | ) |
Referenced by print_graphite_scop_statistics().
|
inlinestatic |
Returns a gimple_bb from BB.
bool graphite_legal_transform | ( | scop_p | ) |
|
inlinestatic |
Adds a new loop under the loop LST.
Referenced by lst_do_strip_mine().
|
inlinestatic |
Returns true if LOOP contains LST, in other words, if LST is nested in LOOP.
|
inlinestatic |
Returns true if LOOP contains PBB, in other words, if PBB is nested in LOOP.
|
inlinestatic |
Creates a loop nest of depth NB_LOOPS containing LST.
Referenced by lst_find_first_pbb().
|
inlinestatic |
Returns the loop depth of LST.
The depth of the outermost "fake" loop is -1. This outermost loop does not have a loop father and it is just a container, as in the loop representation of GCC.
References lst_dewey_number().
Referenced by copy_lst(), lst_do_strip_mine(), and lst_indent_to().
|
inlinestatic |
Returns the Dewey number for LST.
References lst_find_pbb().
Referenced by copy_lst(), lst_depth(), lst_find_last_pbb(), lst_indent_to(), lst_remove_from_sequence(), pbb_update_scattering(), and scop_to_lst().
|
inlinestatic |
Returns the Dewey number of LST at depth DEPTH.
Referenced by copy_lst().
|
inlinestatic |
Moves LST before LOOP if BEFORE is true, and after the LOOP if BEFORE is false.
|
inlinestatic |
Returns true when LST is a loop that does not contain statements.
Referenced by pbb_update_scattering().
|
inlinestatic |
Return the first LST representing a PBB statement in LST.
References lst_create_nest(), and new_lst_loop().
|
inlinestatic |
Return the last LST representing a PBB statement in LST.
References lst_dewey_number().
Referenced by lst_find_pbb().
|
inlinestatic |
Return the LST node corresponding to PBB.
References last, and lst_find_last_pbb().
Referenced by lst_dewey_number().
|
inlinestatic |
Inserts LST1 before LST2 if BEFORE is true; inserts LST1 after LST2 if BEFORE is false.
Do not insert empty loops.
References free_lst(), and lst_remove_all_before_including_pbb().
|
inlinestatic |
Sets NITER to the upper bound approximation of the number of iterations of loop LST.
|
inlinestatic |
Returns the predecessor of LST in the sequence of its loop father. Returns NULL if LST is the first statement in the sequence.
|
inlinestatic |
Removes from LOOP all the statements before/after and excluding PBB if BEFORE is true/false; Returns the negation of BEFORE when the statement PBB has been found.
|
inlinestatic |
Removes from LOOP all the statements before/after and including PBB if BEFORE is true/false. Returns the negation of BEFORE when the statement PBB has been found.
Referenced by lst_insert_in_sequence().
|
inlinestatic |
Removes LST from the sequence of statements of its loop father.
References lst_dewey_number().
|
inlinestatic |
Removes the loop LST and inline its body in the father loop.
|
inlinestatic |
Replaces LST1 with LST2.
References free_lst().
|
inlinestatic |
Returns a copy of ROOT where LST has been replaced by a copy of the LSTs A B C in this sequence.
|
inlinestatic |
Returns the successor of LST in the sequence of its loop father. Returns NULL if there is none.
|
inlinestatic |
Updates the all the scattering levels of all the PBBs under LST.
|
inlinestatic |
Updates the scattering of all the PBBs under LST to be at the DEWEY number in the loop at depth LEVEL.
|
inlinestatic |
Creates a new LST loop with SEQ.
Referenced by lst_find_first_pbb(), and pbb_number_of_iterations_at_time().
|
inlinestatic |
Creates a new LST statement with PBB.
Referenced by pbb_number_of_iterations_at_time().
void new_poly_dr | ( | poly_bb_p | pbb, |
int | dr_base_object_set, | ||
enum poly_dr_type | type, | ||
void * | cdr, | ||
graphite_dim_t | nb_subscripts, | ||
isl_map * | acc, | ||
isl_set * | extent | ||
) |
Create a new polyhedral data reference and add it to PBB. It is defined by its ACCESSES, its TYPE, and the number of subscripts NB_SUBSCRIPTS.
scop_p new_scop | ( | void * | ) |
|
inlinestatic |
Return the number of write data references in PBB.
bool optimize_isl | ( | scop_p | ) |
|
inlinestatic |
The basic block of the PBB.
References poly_bb::domain.
|
inlinestatic |
|
inlinestatic |
The number of loops around PBB: the dimension of the iteration domain.
|
inlinestatic |
The poly_bb of the BB.
Referenced by translate_scalar_reduction_to_array_for_stmt().
|
inlinestatic |
The index of the PBB.
References scop_nb_params().
Referenced by print_scattering_function_1(), and print_scop().
|
inlinestatic |
The dimension in the domain of PBB containing the iterator ITER.
References pbb_dim_iter_domain(), and pbb_nb_scattering_orig().
|
inlinestatic |
The loop of the PBB.
|
inlinestatic |
The number of dynamic scattering dimensions in PBB.
This function requires the 2d + 1 scattering format to be invariant during all transformations.
References pbb_nb_scattering_transform().
|
inlinestatic |
Returns the number of local variables used in the transformed scattering polyhedron of PBB.
For now we do not have any local variables, as we do not do strip mining for example.
References pbb_nb_scattering_transform().
Referenced by pbb_parameter_dim(), print_scattering_function_1(), and psct_scattering_dim().
|
inlinestatic |
Referenced by free_poly_bb(), print_scattering_function_1(), psco_scattering_dim(), and psct_scattering_dim().
|
inlinestatic |
The number of params defined in PBB.
|
inlinestatic |
The number of scattering dimensions in the SCATTERING polyhedron of a PBB for a given SCOP.
References pbb_dim_iter_domain().
Referenced by pbb_iterator_dim(), pbb_nb_scattering_transform(), and psco_scattering_dim().
|
inlinestatic |
The number of scattering dimensions in PBB.
References pbb_nb_scattering_orig().
Referenced by pbb_nb_dynamic_scattering_transform(), pbb_nb_local_vars(), pbb_parameter_dim(), print_scattering_function_1(), psco_iterator_dim(), psct_local_var_dim(), and psct_scattering_dim().
void pbb_number_of_iterations_at_time | ( | poly_bb_p | pbb, |
graphite_dim_t | time_depth, | ||
mpz_t | res | ||
) |
Returns the number of iterations RES of the loop around PBB at time(scattering) dimension TIME_DEPTH.
Map the iteration domain through the current scatter, and work on the resulting set.
Select the time_depth' dimension via an affine expression.
And find the min/max for that function.
XXX isl check results?
References flow_bb_inside_loop_p(), loop::inner, basic_block_def::loop_father, loop_to_lst(), new_lst_loop(), new_lst_stmt(), and loop::next.
|
inlinestatic |
The dimension in the domain of PBB containing the iterator ITER.
References pbb_dim_iter_domain(), pbb_nb_local_vars(), and pbb_nb_scattering_transform().
|
inlinestatic |
Set black box of PBB to BLACKBOX.
|
inlinestatic |
Updates the scattering of PBB to be at the DEWEY number in the loop at depth LEVEL.
References lst_dewey_number(), and lst_empty_p().
|
inlinestatic |
The dimension of the alias set in PDR.
|
inlinestatic |
The dimension of the iteration domain of the scop of PDR.
|
inlinestatic |
The dimension in PDR containing the loop iterator ITER.
References PDR_READ.
|
inlinestatic |
Returns true when PDR is a "may write".
|
inlinestatic |
The number of parameters of the scop of PDR.
|
inlinestatic |
The dimension in PDR containing parameter PARAM.
References PDR_WRITE.
|
inlinestatic |
Returns true when PDR is a "read".
References PDR_MAY_WRITE.
|
inlinestatic |
The scop that contains the PDR.
|
inlinestatic |
The dimension in PDR containing subscript S.
References pbb_dim_iter_domain().
|
inlinestatic |
Returns true when PDR is a "write".
|
inlinestatic |
Copies S and return a new scattering.
|
inlinestatic |
Free a poly_scattering structure.
|
inlinestatic |
Allocates a new empty poly_scattering structure.
void print_cloog | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
void print_generated_program | ( | FILE * | , |
scop_p | |||
) |
void print_isl_aff | ( | FILE * | , |
isl_aff * | |||
) |
void print_isl_constraint | ( | FILE * | , |
isl_constraint * | |||
) |
void print_isl_map | ( | FILE * | , |
isl_map * | |||
) |
void print_isl_set | ( | FILE * | , |
isl_set * | |||
) |
void print_iteration_domain | ( | FILE * | , |
poly_bb_p | , | ||
int | |||
) |
void print_iteration_domains | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
void print_lst | ( | FILE * | , |
lst_p | , | ||
int | |||
) |
void print_pbb | ( | FILE * | , |
poly_bb_p | , | ||
int | |||
) |
void print_pbb_domain | ( | FILE * | , |
poly_bb_p | , | ||
int | |||
) |
void print_pdr | ( | FILE * | , |
poly_dr_p | , | ||
int | |||
) |
void print_pdrs | ( | FILE * | , |
poly_bb_p | , | ||
int | |||
) |
void print_scattering_function | ( | FILE * | , |
poly_bb_p | , | ||
int | |||
) |
void print_scattering_functions | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
void print_scop | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
void print_scop_context | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
void print_scop_params | ( | FILE * | , |
scop_p | , | ||
int | |||
) |
|
inlinestatic |
The dimension in the original scattering polyhedron of PBB containing the loop iterator ITER.
References pbb_nb_scattering_transform().
|
inlinestatic |
The dimension in the original scattering polyhedron of PBB containing parameter PARAM.
References lst::loop_father, lst::loop_p, and lst::memory_strides.
|
inlinestatic |
The dimension in the original scattering polyhedron of PBB containing the scattering iterator SCATTER.
References pbb_dim_iter_domain(), pbb_nb_params(), and pbb_nb_scattering_orig().
|
inlinestatic |
Adds to the transformed scattering polyhedron of PBB a new local variable and returns its index.
|
inlinestatic |
The scattering dimension of PBB corresponding to the dynamic level LEVEL.
Referenced by lst_interchange_profitable_p().
|
inlinestatic |
The dimension in the transformed scattering polyhedron of PBB containing the loop iterator ITER.
|
inlinestatic |
The dimension in the transformed scattering polyhedron of PBB of the local variable LV.
References pbb_nb_scattering_transform().
|
inlinestatic |
|
inlinestatic |
The dimension in the transformed scattering polyhedron of PBB containing the scattering iterator SCATTER.
References pbb_dim_iter_domain(), pbb_nb_local_vars(), pbb_nb_params(), and pbb_nb_scattering_transform().
|
inlinestatic |
The scattering dimension of PBB corresponding to the static sequence of the loop level LEVEL.
|
inlinestatic |
Restores the SCOP_TRANSFORMED_SCHEDULE from SCOP_SAVED_SCHEDULE.
|
inlinestatic |
Restores the scattering for all the pbbs in the SCOP.
|
inlinestatic |
Restores the scattering of PBB.
isl_map* reverse_loop_at_level | ( | poly_bb_p | , |
int | |||
) |
|
inlinestatic |
Return true when PDR1 and PDR2 are similar data accesses: they have the same base array, and the same access functions.
References poly_bb::black_box, and poly_bb::scop.
void schedule_to_scattering | ( | poly_bb_p | , |
int | |||
) |
bool scop_do_block | ( | scop_p | ) |
int scop_do_interchange | ( | scop_p | ) |
int scop_do_strip_mine | ( | scop_p | , |
int | |||
) |
int scop_max_loop_depth | ( | scop_p | ) |
|
inlinestatic |
Referenced by add_param_constraints(), init_cloog_input_file(), openscop_print_scop_context(), and pbb_index().
|
inlinestatic |
Returns the number of parameters for SCOP.
|
inlinestatic |
Set the number of params of SCOP to NB_PARAMS.
|
inlinestatic |
Set the region of SCOP to REGION.
void scop_to_lst | ( | scop_p | ) |
|
inlinestatic |
Stores the SCOP_TRANSFORMED_SCHEDULE to SCOP_SAVED_SCHEDULE.
|
inlinestatic |
Saves the scattering for all the pbbs in the SCOP.
|
inlinestatic |
Saves the transformed scattering of PBB.
int unify_scattering_dimensions | ( | scop_p | ) |