25 #include "pips_config.h"
45 #include "resources.h"
66 pips_debug(4,
"declaration statement to replicated\n");
74 for (
int i=0; i<nbr_copy; i++) {
97 pips_debug(4,
"declaration statement that be added\n");
151 bool good_result_p =
true;
153 debug_on(
"MPI_GENERATION_DEBUG_LEVEL");
197 return (good_result_p);
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
int get_int_property(const string)
bool statement_consistent_p(statement p)
static statement module_statement
const char * module_name(const char *s)
Return the module part of an entity name.
char * get_string_property(const char *)
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
int gen_position(const void *item, const list l)
Element ranks are strictly positive as for first, second, and so on.
#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.
sequence statement_sequence(statement)
Get the sequence of a statement sequence.
bool statement_sequence_p(statement)
Statement classes induced from instruction type.
void pop_generated_variable_commenter(void)
statement add_declaration_statement_here(statement, statement, entity, bool)
Add a new declaration statement (inspired by generic_add_declaration_statement)
void push_generated_variable_commenter(string(*)(entity))
bool declaration_statement_p(statement)
Had to be optimized according to Beatrice Creusillet.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define MODULE_SEP_STRING
char * i2a(int)
I2A (Integer TO Ascii) yields a string for a given Integer.
string concatenate(const char *,...)
Return the concatenation of the given strings.
void * gen_find_tabulated(const char *, int)
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.
void print_statement(statement)
Print a statement on stderr.
static const char * prefix
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
const char * entity_user_name(entity e)
Since entity_local_name may contain PIPS special characters such as prefixes (label,...
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
string local_name_to_scope(const char *ln)
allocates a new string
const char * entity_module_name(entity e)
See comments about module_name().
entity make_entity_copy_with_new_name(entity e, string global_new_name, bool move_initialization_p)
Create a copy of an entity, with (almost) identical type, storage and initial value if move_initializ...
#define sequence_statements(x)
#define statement_declarations(x)
#define entity_domain
newgen_syntax_domain_defined
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.
#define MPI_GENERATION_NBR_CLUSTER
#define COMMENT_VARIABLE_REPLICATION
#define MPI_GENERATION_PREFIX
task load_parallel_task_mapping(statement)
void set_parallel_task_mapping(statement_task)
void reset_parallel_task_mapping(void)
#define task_private_data(x)
bool variable_replication(const char *module_name)
PIPS pass.
static void replicate_declaration(entity decl, statement module_statement, statement st)
static bool make_global_variable_declaration_replication()
static bool make_declaration_replication(statement module_statement)
only replicate declaration declare at the first scope of the function.
static string variable_replication_declaration_commenter(__attribute__((unused)) entity e)
Pass: VARIABLE_REPLICATION Debug mode: MPI_GENERATION_DEBUG_LEVEL Properties used: