6 #ifndef sac_header_included
7 #define sac_header_included
42 #define FUNC_TO_ATOMIZE_P(call) (\
43 type_functional_p(entity_type(call_function(call))) && \
44 (gen_length(module_functional_parameters(call_function(call))) != 0) && \
45 (!ENTITY_DEREFERENCING_P(call_function(call))) && \
46 (!ENTITY_POINT_TO_P(call_function(call))) && \
47 (!ENTITY_FIELD_P(call_function(call)))\
51 #define IF_TO_CONVERT "PIPS IF_TO_CONVERT"
52 #define IF_CONV_TO_COMPACT "PIPS IF_CONV_TO_COMPACT"
55 #define ENTITY_FUNCTION_P(f) (type_functional_p(entity_type(f)) && \
56 (gen_length(module_functional_parameters(f)) != 0))
60 #define SIMD_MASKED_SUFFIX "_MASKED"
61 #define SIMD_GENERIC_SUFFIX "_GENERIC"
62 #define SIMD_CONSTANT_SUFFIX "_CONSTANT"
63 #define SIMD_BROADCAST_SUFFIX "_BROADCAST"
64 #define SAC_PADDING_ENTITY_NAME "PADDING_VALUE"
66 #define STATEMENT_INFO_NEWGEN_DOMAIN SIMDSTATEMENTINFO_NEWGEN_DOMAIN
67 #define gen_STATEMENT_INFO_cons gen_SIMDSTATEMENTINFO_cons
70 #define CHECK_VECTORELEMENT(ve) do {\
71 pips_assert("vector Index seems legal",vectorElement_vectorIndex(ve) >= 0 && vectorElement_vectorIndex(ve) < simdStatementInfo_nbArgs(vectorElement_statement(ve)));\
void reset_simd_treematch(void)
char * patterns_yyget_text(void)
int patterns_yyleng
lexer.c
void set_simd_operator_mappings(void *)
operatorid.c
expression distance_between_expression(const expression, const expression)
computes the distance betwwen two expression
bool deatomizer(char *)
deatomizer.c
size_t sac_lineno
patterns.c
void patterns_yypop_buffer_state(void)
bool sac_aligned_entity_p(entity)
void set_simd_treematch(matchTree)
treematch.c
bool if_conversion_compact(char *)
cproto-generated files
bool simdizer_init(const char *)
void insert_transformation(char *, int, int, int, int, int, list)
vectransform.c
void patterns_yyset_lineno(int)
bool if_conversion(char *)
if_conversion.c
void simd_reset_finalArgType(void)
int patterns_yyget_debug(void)
void * patterns_yyrealloc(void *, yy_size_t)
int effective_variables_width(instruction)
varwidth.c
list match_statement(statement)
return a list of matching statements
void init_vector_to_expressions(void)
codegen.c
bool reduction_atomization(const char *)
void patterns_yyset_out(FILE *)
void patterns_yyset_in(FILE *)
void patterns_yyset_debug(int)
bool expression_reference_or_field_p(expression)
hash_table operator_id_sons
Warning! Do not modify this file that is automatically generated!
void invalidate_expressions_in_statement(statement)
dg_vertex_label vertex_label
void insert_opcodeClass(char *, int, list)
bool scalar_renaming(char *)
singleass.c
void patterns_yyrestart(FILE *)
bool redundant_load_store_elimination(char *)
bool simd_atomizer(char *)
int get_subwordSize_from_opcode(opcode, int)
int patterns_yy_flex_debug
bool simdizer_auto_unroll(char *)
int patterns_yylex_destroy(void)
int patterns_yyget_leng(void)
bool loop_nest_unswitching(const char *)
bool simdizer_auto_tile(const char *)
bool simd_vector_entity_p(entity)
void * patterns_yyalloc(yy_size_t)
int get_operator_id(entity)
void reset_vector_to_expressions(void)
void reset_simd_operator_mappings(void)
statement sac_current_block
opcode generate_opcode(string, list, float)
auto-guess vector size
void insert_pattern(char *, list, list)
statement simd_atomize_this_expression(entity(*)(entity, basic), expression)
atomizer.c
bool simd_check_argType(void)
void simd_fill_finalArgType(statement)
FILE * patterns_yyget_in(void)
bool loop_auto_unroll(const char *)
unroll.c
bool if_conversion_init(char *)
if_conversion_init.c
bool sac_expression_reduction_p(expression)
reductions.c
int patterns_yywrap(void)
int patterns_yyget_lineno(void)
list generate_simd_code(simdstatement, float *)
match get_statement_match_of_kind(statement, opcodeClass)
simdizer.c
statement make_shuffle_statement(entity *, list, int *)
FILE * patterns_yyget_out(void)
bool simd_remove_reductions(char *)
remove reductions by expanding reduced scalar to an array
string sac_commenter(entity)
bool simd_memory_packing(char *)
simd_memory_packing.c
void simd_fill_curArgType(statement)
bool simd_treematcher(const string)
FILE * patterns_yyin
symbols exported by the parser
void patterns_yyerror(const char *)
void patterns_yyfree(void *)
simdstatement make_simd_statements(set, list)
bool simd_operator_mappings(const string)
instruction sac_real_current_instruction
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.