2 #include "pips_config.h"
28 #include "resources.h"
statement copy_statement(statement p)
STATEMENT.
instruction make_instruction_sequence(sequence _field_)
synchronization make_synchronization_none(void)
sequence make_sequence(list a)
struct _newgen_struct_statement_ * statement
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.
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.
entity set_current_module_entity(entity)
static.c
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 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.
#define MAPL(_map_list_cp, _code, _l)
Apply some code on the addresses of 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.
sequence statement_sequence(statement)
Get the sequence of a statement sequence.
loop statement_loop(statement)
Get the loop of a statement.
bool statement_sequence_p(statement)
Statement classes induced from instruction type.
bool return_statement_p(statement)
Test if a statement is a C or Fortran "return".
void insert_statement(statement, statement, bool)
This is the normal entry point.
statement make_continue_statement(entity)
bool declaration_statement_p(statement)
Had to be optimized according to Beatrice Creusillet.
string concatenate(const char *,...)
Return the concatenation of the given strings.
static bool gen_openmp(statement stmt, bool nested_p)
dg_vertex_label vertex_label
bool openmp_task_generation(char *module_name)
OpenMP generation pass.
static bool gen_synchronization(statement stmt, bool nested_p, int length)
dg_arc_label arc_label
Instantiation of the dependence graph:
static void gen_omp_taskwait(statement stmt)
static void gen_omp_parallel(statement stmt)
hash_table set_ordering_to_statement(statement s)
To be used instead of initialize_ordering_to_statement() to make sure that the hash table ots is in s...
void reset_ordering_to_statement(void)
Reset the mapping from ordering to statement.
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
#define is_instruction_block
soft block->sequence transition
#define instruction_block(i)
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
entity entity_empty_label(void)
void add_pragma_str_to_statement(statement st, const char *s, bool copy_flag)
Add a string as a pragma to a statement.
@ is_synchronization_barrier
@ is_synchronization_spawn
#define synchronization_tag(x)
#define statement_synchronization(x)
#define instruction_tag(x)
#define sequence_statements(x)
#define statement_instruction(x)
#define instruction_test(x)
#define statement_undefined_p(x)
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.