PIPS
accel-util.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/accel-util/accel-util-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef accel_util_header_included
7 #define accel_util_header_included
8 /* accel_util-local.h */
9 
11 /* Add NewGen-like methods: */
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 )
16 
17 #define OUTLINE_PRAGMA "outline this"
18 #define OUTLINE_IGNORE "outline_ignore"
19 
20 
21 /* Dependences for accel-util.h */
22 #include "transformer.h"
23 #include "effects.h"
24 /* cproto-generated files */
25 /* group_constants.c */
26 extern bool group_constants(const string /*module_name*/);
27 /* isolate_statement.c */
28 extern void region_to_dimensions(effect /*reg*/, transformer /*tr*/, list */*dimensions*/, list */*offsets*/, expression */*condition*/);
29 extern list variable_to_dimensions(effect /*reg_from*/);
30 extern call dimensions_to_dma(effect /*reg_from*/, entity /*to*/, list /*ld*/, list /*lo*/, enum region_to_dma_switch /*m*/);
31 extern void do_isolate_statement(statement /*s*/, const char */*prefix*/, const char */*suffix*/);
32 extern void isolate_patch_entities(void */*where*/, entity /*old*/, entity /*new*/, list /*offsets*/);
33 extern bool region_to_minimal_dimensions(effect /*r*/, transformer /*tr*/, list */*dims*/, list */*offsets*/, bool /*exact*/, expression */*condition*/);
34 extern effect find_region_on_entity(entity /*e*/, list /*regions*/);
35 extern range dimension_to_range(dimension /*d*/);
36 extern bool isolate_statement(const char */*module_name*/);
37 /* statement_insertion.c */
38 extern bool statement_insertion(const char */*module_name*/);
39 extern bool array_expansion(const char */*module_name*/);
40 /* loop_expansion.c */
41 extern bool loop_expansion(const char */*module_name*/);
42 extern bool loop_expansion_init(const char */*module_name*/);
43 /* outlining.c */
45 extern hash_table outliner_init(entity /*new_fun*/, list /*statements_to_outline*/);
46 extern list outliner_scan(entity /*new_fun*/, list /*statements_to_outline*/, statement /*new_body*/);
47 extern bool is_entity_in_list(entity /*e*/, list /*l*/);
48 extern void outliner_parameters(entity /*new_fun*/, statement /*new_body*/, list /*referenced_entities*/, hash_table /*entity_to_effective_parameter*/, list */*effective_parameters_*/, list */*formal_parameters_*/);
49 extern void outliner_patch_parameters(list /*statements_to_outline*/, list /*referenced_entities*/, list /*effective_parameters*/, list /*formal_parameters*/, statement /*new_body*/, statement /*begin*/, statement /*end*/);
50 extern void outliner_file(entity /*new_fun*/, list /*formal_parameters*/, statement */*new_body*/);
51 extern statement outliner_call(entity /*new_fun*/, list /*statements_to_outline*/, list /*effective_parameters*/);
52 extern void remove_from_formal_parameters(list /*induction_var*/, list */*formal_parameters*/);
53 extern void remove_from_effective_parameters(list /*induction_var*/, list */*effective_parameters*/);
54 extern void add_induction_var_to_local_declarations(statement */*new_body*/, list /*induction_var*/);
55 extern statement outliner(const char */*outline_module_name*/, list /*statements_to_outline*/);
56 extern bool outline(const string /*module_name*/);
57 /* array_to_pointer.c */
59 extern size_t type_dereferencement_depth(type /*t*/);
60 extern bool linearize_array_generic(const char */*module_name*/);
61 extern bool linearize_array(const char */*module_name*/);
62 extern bool linearize_array_fortran(const char */*module_name*/);
63 /* inlining.c */
64 extern bool has_entity_with_same_name(entity /*e*/, list /*l*/);
65 extern bool inlining(const char */*module_name*/);
66 extern bool inlining_simple(const char */*module_name*/);
67 extern bool unfolding(char */*module_name*/);
68 extern bool unfolding_simple(char */*module_name*/);
69 /* kernels.c */
70 extern bool kernel_load_store(const char */*module_name*/);
71 extern bool kernelize(const string /*module_name*/);
72 extern bool flag_kernel(const string /*module_name*/);
73 extern bool bootstrap_kernels(const string /*module_name*/);
74 /* ikernels.c */
75 extern void dump_entity_set(set /*s*/);
76 extern bool is_a_kernel(const char */*func_name*/);
77 extern bool ikernel_load_store(char */*module_name*/);
78 extern bool kernel_data_mapping(char */*module_name*/);
79 extern bool wrap_kernel_argument(char */*module_name*/);
80 /* terapixify.c */
81 extern void normalize_microcode_anotate(void);
82 extern void terapix_loop_optimizer(statement /*st*/);
83 extern bool normalize_microcode(char */*module_name*/);
84 extern bool terapix_warmup(const char */*module_name*/);
85 extern bool generate_two_addresses_code(const string /*module_name*/);
86 extern bool terapix_remove_divide(const string /*module_name*/);
87 /* constraints.c */
88 extern bool solve_hardware_constraints(const char */*module_name*/);
89 /* delay.c */
90 extern void remove_preferences(void */*obj*/);
91 extern bool simd_load_stat_p(statement /*stat*/);
92 extern bool simd_work_stat_p(statement /*stat*/);
93 extern bool simd_store_stat_p(statement /*stat*/);
94 extern bool simd_dma_stat_p(statement /*stat*/);
95 extern bool simd_stat_p(statement /*stat*/);
96 extern bool delay_load_communications(char */*module_name*/);
97 extern bool delay_load_communications_inter(char */*module_name*/);
98 extern bool delay_load_communications_intra(char */*module_name*/);
99 extern bool delay_store_communications(char */*module_name*/);
100 extern bool delay_store_communications_inter(char */*module_name*/);
101 extern bool delay_store_communications_intra(char */*module_name*/);
102 extern bool delay_communications_inter(const char */*module_name*/);
103 extern bool delay_communications_intra(const char */*module_name*/);
104 /* gpu_promote_sequential.c */
105 extern void gpu_promote_sequential_on_sequence(sequence /*seq*/, loop /*l*/);
107 extern bool gpu_promote_sequential(const char */*module_name*/);
108 /* computation_intensity.c */
109 extern bool computation_intensity(const char */*module_name*/);
110 /* manage_pragma.c */
112 extern bool pragma_omp_p(pragma /*p*/);
113 extern bool omp_merge_pragma(const char */*module_name*/);
114 extern bool omp_loop_parallel_threshold_set(const char */*module_name*/);
115 extern void clear_pragma_on_statement(statement /*s*/);
116 extern bool clear_pragma(const char */*module_name*/);
117 extern bool outline_stmts_between_pragmas_in_sequence(sequence /*s*/, void */*_ctx*/);
118 extern bool pragma_outliner(char */*module_name*/);
119 /* generate_pragma.c */
120 extern bool ompify_code(const char */*module_name*/);
121 /* misc.c */
122 extern void get_variables_to_remove(list /*ref_ent*/, statement /*s*/, list */*l*/);
123 #endif /* accel_util_header_included */
region_to_dma_switch
bool delay_load_communications_inter(char *)
Definition: delay.c:665
void get_variables_to_remove(list, statement, list *)
misc.c
Definition: misc.c:58
void remove_from_formal_parameters(list, list *)
Definition: outlining.c:1268
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)
Definition: terapixify.c:991
bool pragma_outliner(char *)
bool ikernel_load_store(char *)
bool unfolding(char *)
perform unfolding using effect
Definition: inlining.c:1118
bool gpu_promote_sequential(const char *)
bool delay_communications_inter(const char *)
Definition: delay.c:970
bool statement_has_omp_parallel_directive_p(statement)
manage_pragma.c
Definition: manage_pragma.c:52
bool isolate_statement(const char *)
bool simd_work_stat_p(statement)
Definition: delay.c:115
list outliner_scan(entity, list, statement)
Definition: outlining.c:555
bool kernelize(const string)
turn a loop flagged with LOOP_LABEL into a kernel (GPU, terapix ...)
Definition: kernels.c:259
list variable_to_dimensions(effect)
bool is_a_kernel(const char *)
Definition: ikernels.c:369
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...
Definition: delay.c:607
size_t type_dereferencement_depth(type)
bool wrap_kernel_argument(char *)
This pass will wrap kernel arguments in a call to a wrapper function.
Definition: ikernels.c:1486
bool simd_load_stat_p(statement)
Definition: delay.c:111
void add_induction_var_to_local_declarations(statement *, list)
Definition: outlining.c:1307
bool has_entity_with_same_name(entity, list)
inlining.c
Definition: inlining.c:256
void remove_preferences(void *)
delay.c
Definition: delay.c:89
bool inlining_simple(const char *)
perform inlining without using effects
Definition: inlining.c:971
bool simd_dma_stat_p(statement)
This function returns true if the statement is a simd loadsave statement.
Definition: delay.c:127
void region_to_dimensions(effect, transformer, list *, list *, expression *)
isolate_statement.c
void normalize_microcode_anotate(void)
terapixify.c
Definition: terapixify.c:410
bool pragma_omp_p(pragma)
Check that a pragma is an "omp" one.
Definition: manage_pragma.c:78
bool array_expansion(const char *)
bool kernel_data_mapping(char *)
Definition: ikernels.c:1344
bool simd_store_stat_p(statement)
Definition: delay.c:119
bool delay_load_communications_intra(char *)
Definition: delay.c:669
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 ...
Definition: outlining.c:1327
void outliner_file(entity, list, statement *)
Definition: outlining.c:1138
bool terapix_remove_divide(const string)
Definition: terapixify.c:1045
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 *)
Definition: delay.c:974
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
Definition: kernels.c:143
bool outline(const string)
entry point for outline module outlining will be performed using either comment recognition or intera...
Definition: outlining.c:1385
bool is_entity_in_list(entity, list)
Checks if an entity is in a list.
Definition: outlining.c:688
list outliner_statements_referenced_entities(list)
outlining.c
Definition: outlining.c:251
bool delay_store_communications(char *)
Definition: delay.c:674
bool loop_expansion(const char *)
loop_expansion.c
hash_table outliner_init(entity, list)
Definition: outlining.c:546
statement outliner_call(entity, list, list)
Definition: outlining.c:1235
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 *)
Definition: terapixify.c:908
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
Definition: ikernels.c:209
bool normalize_microcode(char *)
Definition: terapixify.c:626
bool solve_hardware_constraints(const char *)
constraints.c
Definition: constraints.c:267
bool outline_stmts_between_pragmas_in_sequence(sequence, void *)
bool unfolding_simple(char *)
perform unfolding without using effects
Definition: inlining.c:1133
bool inlining(const char *)
perform inlining using effects
Definition: inlining.c:957
bool delay_store_communications_inter(char *)
Definition: delay.c:733
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...
Definition: outlining.c:809
bool do_convert_this_array_to_pointer_p(entity)
array_to_pointer.c
@ dma_store
Definition: accel-util.h:10
@ dma_allocate
Definition: accel-util.h:10
@ dma_deallocate
Definition: accel-util.h:10
@ dma_load
Definition: accel-util.h:10
bool flag_kernel(const string)
Definition: kernels.c:287
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 *)
Definition: outlining.c:698
void remove_from_effective_parameters(list, list *)
Definition: outlining.c:1288
bool delay_store_communications_intra(char *)
Definition: delay.c:737
void terapix_loop_optimizer(statement)
Definition: terapixify.c:498
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.
Definition: delay.c:135
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)
Definition: kernels.c:297
FI: I do not understand why the type is duplicated at the set level.
Definition: set.c:59
The structure used to build lists in NewGen.
Definition: newgen_list.h:41