2 #include "pips_config.h"
15 #include "resources.h"
27 #define __KV(key, value) if(strcmp( key ,s) == 0) return value;
28 #define __MKV(key, value) __KV(TOP_LEVEL_MODULE_NAME MODULE_SEP_STRING key , value)
32 static const char*
opname(
const char* s)
98 __KV(
"_Imaginary",
"I")
111 const char* name =
opname(fname);
165 string fullname =
malloc(1 + strlen(
prefix) + strlen(name) + strlen(suffix));
166 strcat(strcat(strcpy(fullname,
prefix), name), suffix);
174 pips_user_warning(
"No function %s found, skipping operator %s\n", fullname, fname);
call make_call(entity a1, list a2)
syntax make_syntax_call(call _field_)
expression copy_expression(expression p)
EXPRESSION.
callees compute_callees(const statement stat)
Recompute the callees of a module statement.
void do_loop_to_for_loop(statement)
converts a doloop to a for loop, in place
const char * module_name(const char *s)
Return the module part of an entity name.
char * get_string_property(const char *)
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define gen_recurse(start, domain_number, flt, rwt)
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
statement set_current_module_statement(statement)
Set the current module statement.
statement get_current_module_statement(void)
Get the current module statement.
entity set_current_module_entity(entity)
static.c
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
#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.
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
bool statement_loop_p(statement)
#define pips_user_warning
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
list strsplit(const char *, const char *)
#define same_string_p(s1, s2)
bool set_belong_p(const set, const void *)
set set_append_list(set, const list)
add list l items to set s, which is returned.
set set_make(set_type)
Create an empty set of any type but hash_private.
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
string basic_to_string(basic)
static void rename_op(call c)
static void rw_loop(statement sl)
static set make_string_set_from_prop(const char *prop)
static const char * prefix
static bool take_lvalue(const char *s)
static const char * typesuffix(const char *s)
bool rename_operator(const char *module_name)
A short pass that replace operators by function calls.
#define __MKV(key, value)
static const char * opname(const char *s)
#define POST_DECREMENT_OPERATOR_NAME
#define C_LESS_OR_EQUAL_OPERATOR_NAME
#define C_GREATER_OR_EQUAL_OPERATOR_NAME
#define C_GREATER_THAN_OPERATOR_NAME
#define MINUS_OPERATOR_NAME
#define DIVIDE_UPDATE_OPERATOR_NAME
#define MODULO_UPDATE_OPERATOR_NAME
#define PLUS_OPERATOR_NAME
#define C_NON_EQUAL_OPERATOR_NAME
#define MULTIPLY_UPDATE_OPERATOR_NAME
#define MINUS_UPDATE_OPERATOR_NAME
#define ADDRESS_OF_OPERATOR_NAME
#define PRE_DECREMENT_OPERATOR_NAME
#define DIVIDE_OPERATOR_NAME
#define UNARY_MINUS_OPERATOR_NAME
#define UNARY_PLUS_OPERATOR_NAME
#define C_LESS_THAN_OPERATOR_NAME
#define PRE_INCREMENT_OPERATOR_NAME
#define POST_INCREMENT_OPERATOR_NAME
#define PLUS_UPDATE_OPERATOR_NAME
#define MINUS_C_OPERATOR_NAME
#define MULTIPLY_OPERATOR_NAME
#define C_EQUAL_OPERATOR_NAME
#define ASSIGN_OPERATOR_NAME
#define MODULO_OPERATOR_NAME
#define PLUS_C_OPERATOR_NAME
entity FindEntity(const char *package, const char *name)
Retrieve an entity from its package/module name and its local name.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
void update_expression_syntax(expression e, syntax s)
frees expression syntax of e and replace it by the new syntax s
type expression_to_type(expression)
For an array declared as int a[10][20], the type returned for a[i] is int [20].
#define statement_domain
newgen_sizeofexpression_domain_defined
#define call_domain
newgen_callees_domain_defined
#define EXPRESSION(x)
EXPRESSION.
#define call_arguments(x)
#define type_variable_p(x)
#define variable_basic(x)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.