25 #include "pips_config.h"
32 #include "resources.h"
98 pCurBas =
CDR(pCurBas);
219 pips_user_warning(
"Trying to use a malformed rule. Ignoring missing parameter...\n");
230 for( ; l !=
NIL; l =
CDR(l) )
292 for( ; tokens !=
NIL; tokens =
CDR(tokens) )
294 int token =
INT(
CAR(tokens));
int get_int_property(const string)
match make_match(opcodeClass a1, list a2)
matchTree make_matchTree(list a1, matchTreeSons a2)
matchTree apply_matchTreeSons(matchTreeSons f, intptr_t k)
void extend_matchTreeSons(matchTreeSons f, intptr_t k, matchTree v)
bool bound_matchTreeSons_p(matchTreeSons f, intptr_t k)
patternx make_patternx(opcodeClass a1, list a2)
opcodeClass make_opcodeClass(string a1, intptr_t a2, list a3)
matchTreeSons make_matchTreeSons(void)
opcodeClass gen_find_opcodeClass(char *s)
size_t sac_lineno
patterns.c
@ REFERENCE_TOK
UNKNOWN_TOK
@ CONSTANT_TOK
LOG_REF_TOK
int patterns_yyparse(void)
const char * module_name(const char *s)
Return the module part of an entity name.
FILE * fopen_config(const char *canonical_name, const char *cproperty, const char *cenv)
#define call_constant_p(C)
union gen_chunk * gen_chunkp
void gen_full_free_list(list l)
#define ENDP(l)
Test if a list is empty.
#define REFCAR(pc)
Get the adress of the first element of a list.
#define NIL
The empty list (nil in Lisp)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
#define CAR(pcons)
Get the value of the first element of a list.
void gen_free_list(list l)
free the spine of the list
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define CDR(pcons)
Get the list less its first element.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
call statement_call(statement)
Get the call of a statement.
bool statement_call_p(statement)
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
int get_operator_id(entity e)
#define binary_call_rhs(c)
#define ENTITY_FIELD_P(e)
C data structure and pointer management.
bool top_level_entity_p(entity e)
Check if the scope of entity e is global.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
basic basic_of_expression(expression)
basic basic_of_expression(expression exp): Makes a basic of the same basic as the expression "exp".
int basic_type_size(basic)
See also SizeOfElements()
bool basic_equal_p(basic, basic)
basic basic_of_reference(reference)
Retrieves the basic of a reference in a newly allocated basic object.
#define syntax_reference(x)
#define EXPRESSION(x)
EXPRESSION.
#define call_arguments(x)
#define expression_syntax(x)
FILE * patterns_yyin
symbols exported by the parser
#define matchTree_undefined
#define opcodeClass_undefined
#define patternArg_dynamic_p(x)
#define matchTree_undefined_p(x)
#define PATTERNX(x)
PATTERNX.
#define matchTree_sons(x)
#define matchTree_patterns(x)
#define patternx_class(x)
#define patternArg_static(x)
#define PATTERNARG(x)
PATTERNARG.
static hash_table matches
The structure used to build lists in NewGen.
static matchTree select_tree_branch(matchTree t, int token)
void simd_reset_finalArgType()
void reset_simd_treematch()
static matchTree patterns_tree
void simd_fill_curArgType(statement stat)
static matchTree match_call(call, matchTree, list *)
Warning: list of arguments is built in reversed order (the head is in fact the last argument)
static matchTree match_expression(expression arg, matchTree t, list *args)
bool simd_treematcher(const string module_name)
bool simd_check_argType()
list match_statement(statement s)
return a list of matching statements
static void insert_tree_branch(matchTree t, int token, matchTree n)
void insert_pattern(char *s, list tokens, list args)
void set_simd_treematch(matchTree t)
treematch.c
static list simd_fill_curArgType_call(call ca)
static opcodeClass get_opcodeClass(char *s)
static matchTree make_tree()
void insert_opcodeClass(char *s, int nbArgs, list opcodes)
static list merge_lists(list l, list format)
merge the 2 lists.
void simd_fill_finalArgType(statement stat)