25 #include "pips_config.h"
32 #include "resources.h"
125 bool through_address_of =
false;
165 goto simd_memory_packing_end;
173 if( ( failed = !replaced_something ) )
175 pips_user_warning(
"I did not find any vectorized array in module parameters :'(\n");
176 goto simd_memory_packing_end;
191 simd_memory_packing_end:
type make_type_variable(variable _field_)
variable copy_variable(variable p)
VARIABLE.
void free_variable(variable p)
bool simd_dma_stat_p(statement)
This function returns true if the statement is a simd loadsave statement.
struct _newgen_struct_statement_ * statement
int dummy
A dummy file, to prevent empty libraries from breaking builds.
#define gen_context_recurse(start, ctxt, 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.
const char * get_current_module_name(void)
Get the name of the current module.
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.
bool gen_true2(__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
#define ENDP(l)
Test if a list is empty.
size_t gen_length(const list l)
#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 CDR(pcons)
Get the list less its first element.
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
call statement_call(statement)
Get the call of a statement.
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_free(hash_table htp)
this function deletes a hash table that is no longer useful.
bool add_new_module_from_text(const char *module_name, text code_text, bool is_fortran, const char *compilation_unit_name)
Add the new resource files associated to a module with its more-or-less correct code.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define hash_table_empty_p(htp)
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
text text_module(entity, statement)
bool same_entity_lname_p(entity, entity)
#define ENTITY_ADDRESS_OF_P(e)
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 FindOrCreateEntity(const char *package, const char *local_name)
Problem: A functional global entity may be referenced without parenthesis or CALL keyword in a functi...
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool fortran_module_p(entity m)
Test if a module is in Fortran.
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
Value ValueNumberOfElements(list)
#define dummy_identifier(x)
#define syntax_reference_p(x)
#define parameter_dummy(x)
#define parameter_type(x)
#define syntax_reference(x)
#define reference_variable(x)
#define type_functional(x)
#define basic_pointer_p(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define code_declarations(x)
#define basic_undefined_p(x)
#define EXPRESSION(x)
EXPRESSION.
#define entity_undefined_p(x)
#define functional_parameters(x)
#define PARAMETER(x)
PARAMETER.
#define reference_indices(x)
#define variable_dimensions(x)
#define call_arguments(x)
#define expression_syntax(x)
#define dummy_identifier_p(x)
#define type_variable_p(x)
#define variable_basic(x)
#define entity_initial(x)
bool simd_memory_packing(char *mod_name)
pack load / store from char or short array into load / store from int array a new module is generated
static bool simd_replace_parameters(hash_table array_to_vector)
static void simd_trace_call(statement s, hash_table array_to_vector)
string compilation_unit_of_module(const char *)
The output is undefined if the module is referenced but not defined in the workspace,...
The structure used to build lists in NewGen.