PIPS
|
Go to the source code of this file.
Macros | |
#define | FUNC_TO_ATOMIZE_P(call) |
#define | IF_TO_CONVERT "PIPS IF_TO_CONVERT" |
if conversion More... | |
#define | IF_CONV_TO_COMPACT "PIPS IF_CONV_TO_COMPACT" |
#define | ENTITY_FUNCTION_P(f) |
#define | SIMD_MASKED_SUFFIX "_MASKED" |
simd_loop_const_elim.c More... | |
#define | SIMD_GENERIC_SUFFIX "_GENERIC" |
#define | SIMD_CONSTANT_SUFFIX "_CONSTANT" |
#define | SIMD_BROADCAST_SUFFIX "_BROADCAST" |
#define | SAC_PADDING_ENTITY_NAME "PADDING_VALUE" |
#define | STATEMENT_INFO_NEWGEN_DOMAIN SIMDSTATEMENTINFO_NEWGEN_DOMAIN |
#define | gen_STATEMENT_INFO_cons gen_SIMDSTATEMENTINFO_cons |
#define | CHECK_VECTORELEMENT(ve) |
Typedefs | |
typedef hash_table | operator_id_sons |
Warning! Do not modify this file that is automatically generated! More... | |
typedef dg_arc_label | arc_label |
typedef dg_vertex_label | vertex_label |
Variables | |
FILE * | patterns_yyin |
symbols exported by the parser More... | |
size_t | sac_lineno |
patterns.c More... | |
statement | sac_current_block |
instruction | sac_real_current_instruction |
int | patterns_yychar |
int | patterns_yynerrs |
int | patterns_yyleng |
lexer.c More... | |
FILE * | patterns_yyout |
int | patterns_yylineno |
int | patterns_yy_flex_debug |
char * | patterns_yytext |
#define CHECK_VECTORELEMENT | ( | ve | ) |
#define ENTITY_FUNCTION_P | ( | f | ) |
#define FUNC_TO_ATOMIZE_P | ( | call | ) |
#define STATEMENT_INFO_NEWGEN_DOMAIN SIMDSTATEMENTINFO_NEWGEN_DOMAIN |
typedef dg_arc_label arc_label |
typedef hash_table operator_id_sons |
Warning! Do not modify this file that is automatically generated!
Modify src/Libs/sac/sac-local.h instead, to add your own modifications. header file built by cproto sac-local.h
typedef dg_vertex_label vertex_label |
bool deatomizer | ( | char * | mod_name | ) |
get the resources
Now do the job
Reorder the module, because new statements have been added
update/release resources
mod_name | od_name |
Definition at line 726 of file deatomizer.c.
References da_simple_sequence_filter(), da_simple_statements(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, dep_graph, gen_recurse, hash_dont_warn_on_redefinition(), hash_warn_on_redefinition(), module_name_to_entity(), module_reorder(), pips_assert, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_proper_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_proper_rw_effects(), statement_consistent_p(), and statement_domain.
expression distance_between_expression | ( | const expression | exp0, |
const expression | exp1 | ||
) |
computes the distance betwwen two expression
reference with different variables have an infinite distance
exp0 | xp0 |
exp1 | xp1 |
Definition at line 419 of file codegen.c.
References basic_of_reference(), binary_call_lhs, binary_call_rhs, distance_between_entity(), expression_call(), expression_field_p(), expression_reference(), expression_reference_p(), expression_undefined, expression_undefined_p, free_basic(), get_bool_property(), int_to_expression(), make_op_exp(), MINUS_OPERATOR_NAME, MULTIPLY_OPERATOR_NAME, PLUS_OPERATOR_NAME, reference_variable, set_bool_property(), simplify_expression(), SizeOfElements(), and sreference_offset().
Referenced by comparable_statements_on_distance_p(), compare_statements_on_distance_to_origin(), conflict_is_a_real_conflict_p(), consecutive_expression_p(), and do_simdizer_init().
int effective_variables_width | ( | instruction | i | ) |
Definition at line 85 of file varwidth.c.
References gen_context_recurse, gen_null2(), reference_domain, and variables_width_filter().
Referenced by compute_parallelism_factor(), and compute_variable_size().
bool expression_reference_or_field_p | ( | expression | e | ) |
Definition at line 192 of file codegen.c.
References expression_field_p(), and expression_reference_p().
Referenced by do_simdizer_init(), get_optimal_opcode(), and sac_statement_to_expressions_gather().
auto-guess vector size
name | ame |
types | ypes |
cost | ost |
Definition at line 276 of file codegen.c.
References gen_length(), get_int_property(), get_subwordSize_from_opcode(), intptr_t, make_opcode(), opcode_vectorSize, and pips_user_warning.
list generate_simd_code | ( | simdstatement | ssi, |
float * | simdCost | ||
) |
this is the classical generation process: several load, an exec and a store
the order is reversed, but we use it
ssi | si |
simdCost | imdCost |
Definition at line 1325 of file codegen.c.
References CONS, generate_exec_statement(), generate_load_statement(), generate_save_statement(), gSimdCost, NIL, out, pips_debug, save, simdstatement_nbArgs, STATEMENT, and statement_undefined_p.
Referenced by simdize_simple_statements_pass2().
retry with uppercase version, cos -> COS :)
Definition at line 161 of file operatorid.c.
References do_get_operator_id(), entity_local_name(), strdup(), strupper(), and UNKNOWN_TOK.
Referenced by match_call().
match get_statement_match_of_kind | ( | statement | s, |
opcodeClass | kind | ||
) |
kind | ind |
Definition at line 101 of file simdizer.c.
References CAR, CDR, get_statement_matches(), MATCH, match_type, match_undefined, and NIL.
Referenced by make_simd_statements().
oc | c |
argNum | rgNum |
Definition at line 246 of file codegen.c.
References DC_REF_TOK, DF_REF_TOK, DI_REF_TOK, gen_nth(), HI_REF_TOK, INT, opcode_argType, pips_internal_error, QI_REF_TOK, SC_REF_TOK, SF_REF_TOK, and SI_REF_TOK.
Referenced by compute_parallelism_factor(), generate_opcode(), get_optimal_opcode(), and make_simd_statement().
bool if_conversion | ( | char * | mod_name | ) |
mod_name | od_name |
Definition at line 281 of file if_conversion.c.
References compute_callees(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, gen_recurse, gen_true(), if_conv_statement(), module_name_to_entity(), module_reorder(), reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
bool if_conversion_compact | ( | char * | mod_name | ) |
cproto-generated files
mod_name | od_name |
Definition at line 252 of file if_conversion_compact.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, dg, gen_context_recurse, gen_true2(), if_conversion_compact_stats(), module_name_to_entity(), module_reorder(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_proper_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_proper_rw_effects(), and statement_domain.
bool if_conversion_init | ( | char * | mod_name | ) |
mod_name | od_name |
Definition at line 337 of file if_conversion_init.c.
References copy_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, FOREACH, free_statement(), gen_recurse, gen_true(), if_conv_init_statement(), ifdebug, insert_statement_no_matter_what(), make_empty_block_statement(), module_name_to_entity(), module_reorder(), pips_debug, print_statement(), reset_complexity_map(), reset_current_module_entity(), reset_current_module_statement(), set_complexity_map(), set_current_module_entity(), set_current_module_statement(), STATEMENT, statement_block(), and statement_domain.
void init_vector_to_expressions | ( | void | ) |
codegen.c
Definition at line 59 of file codegen.c.
References HASH_DEFAULT_SIZE, hash_pointer, hash_table_make(), hash_table_undefined_p, pips_assert, and vector_to_expressions.
Referenced by simdize_simple_statements_pass2().
nbArgs | bArgs |
opcodes | pcodes |
Definition at line 267 of file treematch.c.
References make_opcodeClass().
no such branch -> create a new branch
tokens | okens |
args | rgs |
Definition at line 278 of file treematch.c.
References CAR, CDR, CONS, get_opcodeClass(), insert_tree_branch(), INT, make_patternx(), make_tree(), matchTree_patterns, matchTree_undefined, NIL, opcodeClass_undefined, patterns_tree, PATTERNX, pips_user_warning, and select_tree_branch().
void insert_transformation | ( | char * | name, |
int | vectorLengthOut, | ||
int | subwordSizeOut, | ||
int | vectorLengthIn, | ||
int | subwordSizeIn, | ||
int | nbArgs, | ||
list | mapping | ||
) |
name | ame |
vectorLengthOut | ectorLengthOut |
subwordSizeOut | ubwordSizeOut |
vectorLengthIn | ectorLengthIn |
subwordSizeIn | ubwordSizeIn |
nbArgs | bArgs |
mapping | apping |
Definition at line 43 of file vectransform.c.
References CAR, CDR, CONS, INT, make_transformation(), malloc(), NIL, strdup(), TRANSFORMATION, transformation_mapping, and transformations.
void invalidate_expressions_in_statement | ( | statement | s | ) |
Definition at line 162 of file codegen.c.
References CONS, EFFECT, effect_any_reference, ENTITY, EXPRESSION, expression_reference(), expression_reference_p(), expression_undefined_p, FOREACH, gen_free_list(), gen_full_free_list(), hash_del(), hash_table_scan(), load_proper_rw_effects_list(), NIL, references_may_conflict_p(), and vector_to_expressions.
Referenced by simdize_simple_statements_pass2().
bool loop_auto_unroll | ( | const char * | mod_name | ) |
do the job
mod_name | od_name |
Definition at line 270 of file unroll.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, entity_undefined_p, find_label_entity(), find_loop_from_label(), get_current_module_statement(), get_string_property_or_ask(), module_name_to_entity(), module_reorder(), pips_assert, pips_user_error, reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), simple_simd_unroll_loop_filter(), statement_consistent_p(), and statement_undefined_p.
bool loop_nest_unswitching | ( | const char * | module_name | ) |
module_name | odule_name |
Definition at line 391 of file if_conversion.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, do_loop_nest_unswitching(), ENDP, gen_context_recurse, gen_true2(), get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), NIL, pips_assert, reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
If the permutation indexes are equivalent to an invertion, generate an SIMD_INVERT function (useful for some MIS).
from | rom |
expressions | xpressions |
perms | erms |
Definition at line 1068 of file codegen.c.
References _, AddEntityToCurrentModule(), asprintf, CONS, entity_to_expression(), EXPRESSION, FOREACH, gen_length(), gen_nreverse(), get_vect_name_from_data(), instruction_to_statement(), int_to_expression(), make_call(), make_entity_copy(), make_instruction_call(), module_name_to_runtime_entity(), NIL, out, and shuffle().
Referenced by try_all_permutations().
simdstatement make_simd_statements | ( | set | opkinds, |
list | statements | ||
) |
there should be a better order than this
get the variables
compute the opcode to use
update the pointer to the next statement to be processed
generate the statement information
opkinds | pkinds |
statements | tatements |
Definition at line 1193 of file codegen.c.
References CAR, CDR, gen_last(), get_optimal_opcode(), get_statement_match_of_kind(), make_simd_statement(), match_args, MAX_PACK, opcode_undefined_p, opcode_vectorSize, OPCODECLASS, pips_debug, set_to_list(), simdstatement_undefined, and STATEMENT.
Referenced by simdize_simple_statements_pass2().
return a list of matching statements
find the matching patterns
build the matches
Definition at line 237 of file treematch.c.
References CONS, FOREACH, gen_free_list(), make_match(), MATCH, match_call(), matches, matchTree_patterns, matchTree_undefined_p, merge_lists(), NIL, patterns_tree, PATTERNX, patternx_args, patternx_class, statement_call(), and statement_call_p().
Referenced by compute_parallelism_factor(), and init_statement_matches_map().
void* patterns_yyalloc | ( | yy_size_t | ) |
void patterns_yyerror | ( | const char * | s | ) |
void patterns_yyfree | ( | void * | ) |
int patterns_yyget_debug | ( | void | ) |
FILE* patterns_yyget_in | ( | void | ) |
int patterns_yyget_leng | ( | void | ) |
int patterns_yyget_lineno | ( | void | ) |
FILE* patterns_yyget_out | ( | void | ) |
char* patterns_yyget_text | ( | void | ) |
int patterns_yylex | ( | ) |
int patterns_yylex_destroy | ( | void | ) |
int patterns_yyparse | ( | ) |
void patterns_yypop_buffer_state | ( | void | ) |
void* patterns_yyrealloc | ( | void * | , |
yy_size_t | |||
) |
void patterns_yyrestart | ( | FILE * | ) |
void patterns_yyset_debug | ( | int | ) |
void patterns_yyset_in | ( | FILE * | ) |
void patterns_yyset_lineno | ( | int | ) |
void patterns_yyset_out | ( | FILE * | ) |
int patterns_yywrap | ( | void | ) |
Definition at line 1858 of file patterns.c.
bool reduction_atomization | ( | const char * | module_name | ) |
prelude
do the job
postlude
module_name | odule_name |
Definition at line 459 of file atomizer.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, do_reduction_atomization(), gen_null(), gen_recurse, get_current_module_name(), get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), reset_cumulated_reductions(), reset_current_module_entity(), reset_current_module_statement(), set_cumulated_reductions(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
bool redundant_load_store_elimination | ( | char * | module_name | ) |
Get the code of the module.
module_name | odule_name |
Definition at line 788 of file reductions.c.
References compute_callees(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, dependence_graph, do_redundant_load_store_elimination(), get_current_module_statement(), module, module_name(), module_name_to_entity(), module_reorder(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_proper_rw_effects(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_proper_rw_effects(), and unnormalize_expression().
void reset_simd_operator_mappings | ( | void | ) |
Definition at line 48 of file operatorid.c.
References mappings, and pips_assert.
Referenced by simd_operator_mappings(), simd_unroll_as_needed(), and simdizer().
void reset_simd_treematch | ( | void | ) |
Definition at line 52 of file treematch.c.
References patterns_tree, and pips_assert.
Referenced by simd_treematcher(), simd_unroll_as_needed(), and simdizer().
void reset_vector_to_expressions | ( | void | ) |
Definition at line 64 of file codegen.c.
References hash_table_free(), hash_table_undefined, hash_table_undefined_p, pips_assert, and vector_to_expressions.
Referenced by simdize_simple_statements_pass2().
Definition at line 646 of file codegen.c.
References entity_user_name(), SAC_ALIGNED_VECTOR_NAME, and same_stringn_p.
Referenced by sac_aligned_expression_p(), and sac_commenter().
Definition at line 821 of file simdizer.c.
References asprintf, basic_to_string(), entity_basic(), free(), sac_aligned_entity_p(), simd_vector_entity_p(), and strdup().
Referenced by simdizer().
bool sac_expression_reduction_p | ( | expression | e | ) |
reductions.c
Definition at line 55 of file reductions.c.
References entity_user_name(), expression_reference(), expression_reference_p(), get_string_property(), and reference_variable.
bool scalar_renaming | ( | char * | mod_name | ) |
Get the resources
needed for vertex_to_statement
prune graph
Now do the job
Reorder the module, because new statements have been added
update/release resources
mod_name | od_name |
Definition at line 300 of file singleass.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, dg, do_scalar_renaming(), get_current_module_entity(), get_current_module_statement(), module_name_to_entity(), module_reorder(), pips_assert, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_proper_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_proper_rw_effects(), simplify_dg(), and statement_consistent_p().
void set_simd_operator_mappings | ( | void * | m | ) |
Definition at line 43 of file operatorid.c.
References mappings, and pips_assert.
Referenced by simd_operator_mappings(), simd_unroll_as_needed(), and simdizer().
void set_simd_treematch | ( | matchTree | t | ) |
Definition at line 46 of file treematch.c.
References patterns_tree, and pips_assert.
Referenced by simd_treematcher(), simd_unroll_as_needed(), and simdizer().
statement simd_atomize_this_expression | ( | entity(*)(entity, basic) | create, |
expression | e | ||
) |
atomizer.c
atomizer.c
it does not make sense to atomize a range...
SG: in case of expression similar to (a+2), if a is a short (or a char ...), the user may expect the result is a short too the C syntax expect 2 is an int set the property to false if you want to override this behavior
force all integer to char, then compute the basic validate only if we can guess the size from something not a constant integer
Definition at line 87 of file atomizer.c.
References AddEntityToCurrentModule(), basic_of_expression(), basic_overloaded_p, basic_undefined, basic_undefined_p, copy_expression(), entity_to_expression(), expression_syntax, free_basic(), free_expression(), gen_context_recurse, gen_true2(), get_bool_property(), get_current_module_entity(), make_assign_statement(), make_expression(), make_reference(), make_syntax_reference(), NIL, normalize_all_expressions_of(), normalized_undefined, patch_constant_size(), syntax_domain, and syntax_range_p.
Referenced by atomize_condition(), and simd_do_atomize().
bool simd_atomizer | ( | char * | mod_name | ) |
get the resources
Now do the job
Reorder the module, because new statements have been added
update/release resources
mod_name | od_name |
Definition at line 361 of file atomizer.c.
References atomize_statements(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, gen_recurse, gen_true(), module_name_to_entity(), module_reorder(), reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
bool simd_check_argType | ( | void | ) |
Definition at line 87 of file treematch.c.
References BASIC, basic_equal_p(), CAR, CDR, curArgType, ENDP, finalArgType, FOREACH, gen_full_free_list(), and NIL.
Referenced by extract_matching_statements().
void simd_fill_curArgType | ( | statement | stat | ) |
stat | tat |
Definition at line 82 of file treematch.c.
References curArgType, simd_fill_curArgType_call(), and statement_call().
Referenced by extract_matching_statements().
void simd_fill_finalArgType | ( | statement | stat | ) |
stat | tat |
Definition at line 77 of file treematch.c.
References finalArgType, simd_fill_curArgType_call(), and statement_call().
Referenced by simdize_simple_statements_pass2().
bool simd_memory_packing | ( | char * | mod_name | ) |
mod_name | name of the module to convert |
get the resources
first step : create a vector <> array table
second step : look for any array `‘vectorized’' in the parameter and modify their type to fit the real array size
update/release resources
mod_name | od_name |
Definition at line 151 of file simd_memory_packing.c.
References add_new_module_from_text(), compilation_unit_of_module(), db_get_memory_resource(), fortran_module_p(), free_text(), gen_context_recurse, gen_true2(), get_current_module_entity(), get_current_module_name(), get_current_module_statement(), hash_pointer, hash_table_empty_p, hash_table_free(), hash_table_make(), module_name_to_entity(), pips_user_warning, reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), simd_replace_parameters(), simd_trace_call(), statement_domain, and text_module().
bool simd_operator_mappings | ( | const | string | ) |
create a new operator id
put it in pipsdbm
string | odule_name |
Definition at line 174 of file operatorid.c.
References DB_PUT_MEMORY_RESOURCE, HASH_DEFAULT_SIZE, hash_int, hash_table_make(), insert_mapping(), make_operator_id_tree(), module_name(), oper_id_mapping::name, operators, pips_assert, reset_simd_operator_mappings(), set_simd_operator_mappings(), and UNKNOWN_TOK.
bool simd_remove_reductions | ( | char * | mod_name | ) |
remove reductions by expanding reduced scalar to an array
mod_name | module to remove reductions from |
get the resources
Now do the job
Reorder the module, because new statements have been added
update/release resources
mod_name | od_name |
Definition at line 571 of file reductions.c.
References clean_up_sequences(), compute_callees(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, gen_context_recurse, get_current_module_statement(), module_name_to_entity(), module_reorder(), pips_assert, reduction_rewrite_filter(), reductions_rewrite(), reset_cumulated_reductions(), reset_current_module_entity(), reset_current_module_statement(), set_cumulated_reductions(), set_current_module_entity(), set_current_module_statement(), set_free(), set_make(), set_pointer, statement_consistent_p(), and statement_domain.
void simd_reset_finalArgType | ( | void | ) |
Definition at line 61 of file treematch.c.
References curArgType, finalArgType, gen_free_list(), and NIL.
Referenced by simdize_simple_statements_pass2().
bool simd_treematcher | ( | const | string | ) |
create a new tree match
fill it
put it in pipsdbm
clean up
string | odule_name |
Definition at line 310 of file treematch.c.
References DB_PUT_MEMORY_RESOURCE, fopen_config(), make_tree(), module_name(), patterns_yyin, patterns_yyparse(), pips_assert, reset_simd_treematch(), sac_lineno, and set_simd_treematch().
Definition at line 197 of file codegen.c.
References entity_scalar_p(), entity_type, entity_user_name(), type_variable_p, and VECTOR_POSTFIX.
Referenced by get_basic_from_opcode(), and sac_commenter().
bool simdizer | ( | char * | mod_name | ) |
get the resources
Now do the job
Reorder the module, because new statements have been added
update/release resources
mod_name | od_name |
Definition at line 854 of file simdizer.c.
References clean_up_sequences(), compute_callees(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, decr_counter(), simdizer_context::dg, gen_context_multi_recurse(), incr_counter(), loop_domain, module_name_to_entity(), module_reorder(), pips_assert, pop_generated_variable_commenter(), push_generated_variable_commenter(), remove_preferences(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_proper_rw_effects(), reset_simd_operator_mappings(), reset_simd_treematch(), simdizer_context::result, sac_commenter(), set_conflict_testing_properties(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_proper_rw_effects(), set_simd_operator_mappings(), set_simd_treematch(), simd_simple_sequence_filter(), simdize_simple_statements(), statement_consistent_p(), and statement_domain.
bool simdizer_auto_tile | ( | const char * | module_name | ) |
do the job
retrieve loop indices that are referenced as last element
build tests
iterate over all possible combination of tests
create the if's recursively
validate
module_name | odule_name |
Definition at line 409 of file unroll.c.
References CAR, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, entity_intrinsic(), entity_undefined_p, expression_undefined, find_label_entity(), find_loop_from_label(), FOREACH, gather_local_indices(), gen_context_recurse, gen_copy_seq(), gen_free_list(), gen_length(), gen_recurse, gen_remove_once(), gen_true(), gen_true2(), get_current_module_statement(), get_string_property_or_ask(), GREATER_THAN_OPERATOR_NAME, indices, int_to_expression(), keep_loop_indices(), loop_index, loop_label, loop_range, loops, MakeBinaryCall(), module_name(), module_name_to_entity(), module_reorder(), NIL, perfectly_nested_loop_p(), pips_user_error, POP, range_to_expression(), range_to_nbiter, reference_domain, reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), set_assign_list(), set_belong_p(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_free(), set_make(), set_pointer, simdizer_auto_tile_generate_all_tests(), simple_simd_unroll_rate(), STATEMENT, statement_domain, statement_loop(), statement_undefined_p, and stmt_rm_labels().
bool simdizer_auto_unroll | ( | char * | mod_name | ) |
mod_name | od_name |
Definition at line 310 of file unroll.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, module_name_to_entity(), module_reorder(), pips_assert, reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), simd_unroll_as_needed(), and statement_consistent_p().
bool simdizer_init | ( | const char * | module_name | ) |
get the resources
normalize blocks
then split blocks containing declarations statement
then split blocks containing labeled statement
sort commutative operators
reset
module_name | odule_name |
Definition at line 1023 of file simdizer.c.
References call_domain, clean_up_sequences(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, do_simdizer_init(), do_split_block_statements(), do_split_decl_block_statements(), gen_recurse, gen_true(), get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
|
extern |
|
extern |
|
extern |
lexer.c
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Definition at line 722 of file simdizer.c.
Referenced by make_new_simd_vector_with_prefix(), and simdize_simple_statements().
|
extern |
patterns.c
Definition at line 149 of file sac.h.
Referenced by patterns_yyerror(), and simd_treematcher().
|
extern |
Definition at line 723 of file simdizer.c.
Referenced by make_loadsave_statement(), and simdize_simple_statements().