2 #include "pips_config.h"
29 #include "resources.h"
52 #define SUCCESSORS true
53 #define PREDECESSORS false
123 bool modified =
false;
127 if (!
ENDP(ref_indices)) {
180 declarations =
gen_nconc(declarations, phi);
225 return h_regions_com;
374 bool found_p =
false;
ram make_ram(entity a1, entity a2, intptr_t a3, list a4)
reference make_reference(entity a1, list a2)
bool statement_consistent_p(statement p)
statement make_statement(entity a1, intptr_t a2, intptr_t a3, string a4, instruction a5, list a6, string a7, extensions a8, synchronization a9)
instruction make_instruction_sequence(sequence _field_)
bool bound_persistant_statement_to_cluster_p(persistant_statement_to_cluster f, intptr_t k)
intptr_t apply_persistant_statement_to_cluster(persistant_statement_to_cluster f, intptr_t k)
synchronization make_synchronization_none(void)
storage make_storage_ram(ram _field_)
sequence make_sequence(list a)
int NBCLUSTERS
parameters of BDSC, to be recovered using pips properties
static reference ref
Current stmt (an integer)
Pbase base_add_variable(Pbase b, Variable var)
Pbase base_add_variable(Pbase b, Variable v): add variable v as a new dimension to basis b at the end...
bdt base
Current expression.
statement region_to_com_nest(region r, bool isRead, int k)
Returns the entity corresponding to the global name.
static statement com_call(bool neighbor, list args_com, int k)
static statement Psysteme_to_loop_nest(entity v, list vl, Pbase b, Psysteme p, bool neighbor, list l_var, int k)
static list hierarchical_com(statement s, bool neighbor, int kp)
dg_vertex_label vertex_label
static list gen_send_communications(statement s, vertex tau, persistant_statement_to_cluster st_to_cluster, int kp)
static list gen_recv_communications(statement sv, persistant_statement_to_cluster st_to_cluster, graph tg, int kp)
statement make_com_loopbody(entity v, bool neighbor, list vl, int k)
void communications_construction(graph tg, statement stmt, persistant_statement_to_cluster st_to_cluster, int kp)
static list predecessors(statement st, graph tg)
dg_arc_label arc_label
Instantiation of the dependence graph:
static void replace_indices_region_com(region r, list *dadd, int indNum, entity module)
This function is in charge of replacing the PHI entity of the region by generated indices.
static list successors(list l)
static list transfer_regions(statement parent, statement child)
entity make_constant_entity(string name, tag bt, size_t size)
For historical reason, call the Fortran version.
statement systeme_to_loop_nest(Psysteme, list, statement, entity)
sc is used to generate the loop nest bounds for variables vars.
#define region_entity(reg)
#define region_system(reg)
#define region
simulation of the type region
list RegionsIntersection(list l1, list l2, bool(*intersection_combinable_p)(effect, effect))
list RegionsIntersection(list l1,l2, bool (*intersection_combinable_p)(effect, effect)) input : outpu...
bool region_consistent_p(region reg)
Psysteme sc_list_variables_rename(Psysteme, list, list)
bool w_r_combinable_p(effect, effect)
list load_statement_out_regions(statement)
list load_statement_in_regions(statement)
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
int gen_consistent_p(gen_chunk *obj)
GEN_CONSISTENT_P dynamically checks the type correctness of OBJ.
#define successor_vertex(x)
#define vertex_successors(x)
#define SUCCESSOR(x)
SUCCESSOR.
#define graph_vertices(x)
statement make_block_statement(list)
Make a block statement from a list of statement.
entity get_current_module_entity(void)
Get the entity of the current module.
#define ENDP(l)
Test if a list is empty.
list gen_nreverse(list cp)
reverse a list in place
void gen_remove_once(list *pl, const void *o)
Remove the first occurence of o in list pl:
#define NIL
The empty list (nil in Lisp)
list gen_copy_seq(list l)
Copy a list structure.
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)
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
#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.
int gen_occurences(const void *vo, const list l)
count occurences of vo in l
list gen_full_copy_list(list l)
Copy a list structure with element copy.
loop statement_loop(statement)
Get the loop of a statement.
statement make_call_statement(string, list, entity, string)
This function is limited to intrinsics calls...
statement make_continue_statement(entity)
list base_to_list(Pbase base)
Most includes are centralized here.
statement vertex_to_statement(vertex v)
Vertex_to_statement looks for the statement that is pointed to by vertex v.
static vertex statement_to_vertex(statement s, graph g)
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define DYNAMIC_AREA_LOCAL_NAME
#define STATEMENT_ORDERING_UNDEFINED
mapping.h inclusion
char * i2a(int)
I2A (Integer TO Ascii) yields a string for a given Integer.
static entity dynamic_area
static bool statement_equal_p(statement s1, statement s2)
#define RECV_FUNCTION_NAME
#define statement_block_p(stat)
#define STATEMENT_NUMBER_UNDEFINED
default values
#define is_instruction_block
soft block->sequence transition
#define DIVIDE_OPERATOR_NAME
#define SEND_FUNCTION_NAME
SPIRE API.
#define instruction_block(i)
#define empty_comments
Empty comments (i.e.
int current_offset_of_area(entity a, entity v)
entity FindEntity(const char *package, const char *name)
Retrieve an entity from its package/module name and its local name.
entity entity_empty_label(void)
const char * module_local_name(entity e)
Returns the module local user name.
bool io_entity_p(entity e)
Several implicit entities are declared to define the implicit effects of IO statements.
bool stdin_entity_p(entity e)
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
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...
expression reference_to_expression(reference r)
expression make_entity_expression(entity e, cons *inds)
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
extensions empty_extensions(void)
extension.c
#define syntax_reference(x)
#define reference_variable(x)
#define statement_ordering(x)
#define statement_synchronization(x)
#define entity_storage(x)
#define EXPRESSION(x)
EXPRESSION.
#define statement_label(x)
#define instruction_tag(x)
#define reference_indices(x)
#define statement_extensions(x)
#define statement_instruction(x)
#define statement_comments(x)
#define instruction_test(x)
#define statement_undefined_p(x)
#define expression_syntax(x)
#define type_variable_p(x)
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
void algorithm_row_echelon_generic(Psysteme scn, Pbase base_index, Psysteme *pcondition, Psysteme *penumeration, bool redundancy)
each variable should be at least within one <= and one >=; scn IS NOT modified.
list com_declarations_to_add
spire_generation.c
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.
#define exp
Avoid some warnings from "gcc -Wshadow".
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
#define BASE_NULLE
MACROS SUR LES BASES.