6 #ifndef accel_util_header_included
7 #define accel_util_header_included
12 #define dma_load_p(e) ((e) == dma_load )
13 #define dma_store_p(e) ((e) == dma_store )
14 #define dma_allocate_p(e) ((e) == dma_allocate )
15 #define dma_deallocate_p(e) ((e) == dma_deallocate )
17 #define OUTLINE_PRAGMA "outline this"
18 #define OUTLINE_IGNORE "outline_ignore"
56 extern bool outline(
const string );
bool delay_load_communications_inter(char *)
void get_variables_to_remove(list, statement, list *)
misc.c
void remove_from_formal_parameters(list, list *)
bool loop_expansion_init(const char *)
first step of the loop expansion process: create a statement to insert and flag it with a pragma
bool ompify_code(const char *)
generate_pragma.c
bool generate_two_addresses_code(const string)
bool pragma_outliner(char *)
bool ikernel_load_store(char *)
bool unfolding(char *)
perform unfolding using effect
bool gpu_promote_sequential(const char *)
bool delay_communications_inter(const char *)
bool statement_has_omp_parallel_directive_p(statement)
manage_pragma.c
bool isolate_statement(const char *)
bool simd_work_stat_p(statement)
list outliner_scan(entity, list, statement)
bool kernelize(const string)
turn a loop flagged with LOOP_LABEL into a kernel (GPU, terapix ...)
list variable_to_dimensions(effect)
bool is_a_kernel(const char *)
bool delay_load_communications(char *)
This phase looks for load or save statements that can be put out of the loop body and move these stat...
size_t type_dereferencement_depth(type)
bool wrap_kernel_argument(char *)
This pass will wrap kernel arguments in a call to a wrapper function.
bool simd_load_stat_p(statement)
void add_induction_var_to_local_declarations(statement *, list)
bool has_entity_with_same_name(entity, list)
inlining.c
void remove_preferences(void *)
delay.c
bool inlining_simple(const char *)
perform inlining without using effects
bool simd_dma_stat_p(statement)
This function returns true if the statement is a simd loadsave statement.
void region_to_dimensions(effect, transformer, list *, list *, expression *)
isolate_statement.c
void normalize_microcode_anotate(void)
terapixify.c
bool pragma_omp_p(pragma)
Check that a pragma is an "omp" one.
bool array_expansion(const char *)
bool kernel_data_mapping(char *)
bool simd_store_stat_p(statement)
bool delay_load_communications_intra(char *)
bool linearize_array_generic(const char *)
linearize accesses to an array, and use pointers if asked to
call dimensions_to_dma(effect, entity, list, list, enum region_to_dma_switch)
converts dimensions to a dma call from a memory from to another memory to
statement outliner(const char *, list)
outline the statements in statements_to_outline into a module named outline_module_name the outlined ...
void outliner_file(entity, list, statement *)
bool terapix_remove_divide(const string)
bool computation_intensity(const char *)
computation_intensity.c
bool omp_loop_parallel_threshold_set(const char *)
effect find_region_on_entity(entity, list)
bool delay_communications_intra(const char *)
range dimension_to_range(dimension)
bool statement_insertion(const char *)
statement_insertion.c
void clear_pragma_on_statement(statement)
Remove all pragma attached to a given statement.
bool kernel_load_store(const char *)
kernels.c
bool outline(const string)
entry point for outline module outlining will be performed using either comment recognition or intera...
bool is_entity_in_list(entity, list)
Checks if an entity is in a list.
list outliner_statements_referenced_entities(list)
outlining.c
bool delay_store_communications(char *)
bool loop_expansion(const char *)
loop_expansion.c
hash_table outliner_init(entity, list)
statement outliner_call(entity, list, list)
void do_isolate_statement(statement, const char *, const char *)
perform statement isolation on statement s that is make sure that all access to variables in s are ma...
bool terapix_warmup(const char *)
bool clear_pragma(const char *)
Clear all pragma This should be done on any input with unhandled pragma, we don't what semantic we mi...
void dump_entity_set(set)
ikernels.c
bool normalize_microcode(char *)
bool solve_hardware_constraints(const char *)
constraints.c
bool outline_stmts_between_pragmas_in_sequence(sequence, void *)
bool unfolding_simple(char *)
perform unfolding without using effects
bool inlining(const char *)
perform inlining using effects
bool delay_store_communications_inter(char *)
void outliner_patch_parameters(list, list, list, list, statement, statement, statement)
we need to patch parameters , effective parameters and body in C because parameters are passed by cop...
bool do_convert_this_array_to_pointer_p(entity)
array_to_pointer.c
bool flag_kernel(const string)
bool omp_merge_pragma(const char *)
merge the pragma on the outer loop
void gpu_promote_sequential_on_sequence(sequence, loop)
gpu_promote_sequential.c
void gpu_promote_sequential_on_statement(statement)
bool linearize_array(const char *)
linearize accesses to an array, and use pointers if asked to
void outliner_parameters(entity, statement, list, hash_table, list *, list *)
void remove_from_effective_parameters(list, list *)
bool delay_store_communications_intra(char *)
void terapix_loop_optimizer(statement)
bool group_constants(const string)
Dependences for accel-util.h.
bool simd_stat_p(statement)
This function returns true if the statement is a simd statement.
void isolate_patch_entities(void *, entity, entity, list)
replace all references on entity old by references on entity new and adds offset offsets to its indic...
bool linearize_array_fortran(const char *)
bool region_to_minimal_dimensions(effect, transformer, list *, list *, bool, expression *)
bool bootstrap_kernels(const string)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.