5 #include "pips_config.h"
18 #include "resources.h"
45 for(
unsigned int i = 0; i<size-1; i++){
55 list args,args2,args3, args4, args5, malloc_statements, map_statements, unmap_statements, wait_statements, send_statements, rw_effects, entity_declaration;
93 malloc_statements =
NIL;
94 unmap_statements =
NIL;
95 wait_statements =
NIL;
96 send_statements =
NIL;
97 entity_declaration =
NIL;
160 entity_declaration =
CONS(
ENTITY,
new, entity_declaration);
176 if(num_task < nb_task_total){
call make_call(entity a1, list a2)
expression make_expression(syntax a1, normalized a2)
type make_type_variable(variable _field_)
syntax make_syntax_sizeofexpression(sizeofexpression _field_)
basic copy_basic(basic p)
BASIC.
basic make_basic_pointer(type _field_)
sizeofexpression make_sizeofexpression_type(type _field_)
variable make_variable(basic a1, list a2, list a3)
instruction make_instruction_call(call _field_)
range make_range(expression a1, expression a2, expression a3)
callees compute_callees(const statement stat)
Recompute the callees of a module statement.
void set_cumulated_rw_effects(statement_effects)
list load_cumulated_rw_effects_list(statement)
void reset_cumulated_rw_effects(void)
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
#define action_write_p(x)
const char * module_name(const char *s)
Return the module part of an entity name.
statement make_block_statement(list)
Make a block statement from a list of statement.
statement instruction_to_statement(instruction)
Build a statement from a give instruction.
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
entity get_current_module_entity(void)
Get the entity of the current module.
void replace_entity_by_expression(void *s, entity ent, expression exp)
replace all reference to entity ent by expression exp in s.
list gen_nreverse(list cp)
reverse a list in place
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning 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.
void insert_statement(statement, statement, bool)
This is the normal entry point.
hash_table hash_table_make(hash_key_type key_type, size_t size)
void * hash_get(const hash_table htp, const void *key)
this function retrieves in the hash table pointed to by htp the couple whose key is equal to key.
void hash_put(hash_table htp, const void *key, const void *val)
This functions stores a couple (key,val) in the hash table pointed to by htp.
void hash_table_clear(hash_table htp)
Clears all entries of a hash table HTP.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define HASH_UNDEFINED_VALUE
value returned by hash_get() when the key is not found; could also be called HASH_KEY_NOT_FOUND,...
#define HASH_DEFAULT_SIZE
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
#define make_expression_list(stats...)
#define MINUS_OPERATOR_NAME
#define PLUS_OPERATOR_NAME
#define DIVIDE_OPERATOR_NAME
#define ASSIGN_OPERATOR_NAME
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
void print_entities(list l)
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
expression range_to_expression(range r, enum range_to_expression_mode mode)
computes the distance between the lower bound and the upper bound of the range
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
expression MakeBinaryCall(entity f, expression eg, expression ed)
Creates a call expression to a function with 2 arguments.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
expression make_op_exp(char *op_name, expression exp1, expression exp2)
================================================================
expression call_to_expression(call c)
Build an expression that call a function or procedure.
entity make_new_scalar_variable(entity, basic)
void AddEntityToCurrentModule(entity)
Add a variable entity to the current module declarations.
#define normalized_undefined
struct _newgen_struct_callees_ * callees
#define callees_callees(x)
#define reference_variable(x)
#define EXPRESSION(x)
EXPRESSION.
#define variable_dimensions(x)
#define variable_basic(x)
#define STATEMENT(x)
STATEMENT.
hash_table shared_mem
sesamify.c
static type convert_local_to_pointer_array(type local_type)
onvert pointer to fixed size type to normal pointer
bool sesamify(char *module_name)
The structure used to build lists in NewGen.
A phase that transform simple tasks in SCMP code.