25 #include "pips_config.h"
35 static const string option[] =
107 pips_assert(
"valid dimension number", number>=0 && number<=7);
109 for(; number>0; number--)
286 entity opera, bsize, index;
292 bsize = is_send ? is_full ?
319 pack ? array_ref : buffer_ref);
351 int size, npdim, nreplicated;
361 for (nreplicated=0; npdim; npdim--)
446 statement packing, realpack, indexeq0, ifcond, optional;
540 NIL)))) : pack_stmt ;
call make_call(entity a1, list a2)
expression copy_expression(expression p)
EXPRESSION.
reference make_reference(entity a1, list a2)
test make_test(expression a1, statement a2, statement a3)
#define int_to_value(i)
end LINEAR_VALUE_IS_INT
#define value_uminus(val)
unary operators on values
#define value_mult(v, w)
whether the default is protected or not this define makes no sense any more...
expression MakeCharacterConstantExpression(string s)
END_EOLE.
entity MakeConstant(string name, tag bt)
Make a Fortran constant.
#define contrainte_vecteur(c)
passage au champ vecteur d'une contrainte "a la Newgen"
Pcontrainte contraintes_free(Pcontrainte pc)
Pcontrainte contraintes_free(Pcontrainte pc): desallocation de toutes les contraintes de la liste pc.
int dummy
A dummy file, to prevent empty libraries from breaking builds.
struct _newgen_struct_assignment_ * assignment
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
statement hpfc_compute_lid(entity lid, entity proc, entity(*creation)(), entity array)
statement st_compute_lid(proc)
static statement hpfc_broadcast_buffers(entity src, entity trg, entity lid, entity proc)
send the buffer, possibly a broadcast.
statement hpfc_lazy_guard(bool snd, statement then)
returns if (LAZY_{SEND,RECV}) then
static expression pvm_encoding_option(int n)
HPFC module by Fabien COELHO.
statement generate_deducables(list le)
statement generate_deducables(list le)
statement hpfc_lazy_packing(entity array, entity lid, entity(*creation)(), bool pack, bool lazy)
the lazy issues.
statement define_node_processor_id(entity proc, entity(*creation)(int))
builds a statement VAR_i = MYPOS(i, proc_number) // i=1 to proc dimension
statement hpfc_add_n(entity var, int n)
returns statement VAR = VAR + N
static expression buffer_full_condition(entity array, bool is_send, bool is_full)
generates the condition for testing the buffer state: returns (BUFFER_INDEX.
statement hpfc_generate_message(entity ld, bool send, bool lazy)
expression make_reference_expression(entity e, entity(*creation)())
statement hpfc_message(expression tid, expression channel, bool send)
static statement hpfc_lazy_message(expression tid, expression channel, bool snd)
IF (LAZY_snd) THEN PVMFsnd() LAZY_snd = false // if receive ENDIF.
statement hpfc_initsend(bool lazy)
statement hpfc_buffer_packing(entity array, entity(*creation)(), bool pack)
array(creation) = buffer(current++) or reverse assignment...
statement hpfc_buffer_initialization(bool is_send, _UNUSED_ bool is_lazy, bool job_was_done)
statement hpfc_add_2(expression exp)
expr = expr + 2
static entity hpfc_buffer_entity(entity array, string suffix)
returns the buffer entity for array
list hpfc_gen_n_vars_expr(entity(*creation)(), int number)
of expression
static entity hpfc_ith_broadcast_function(int dim, bool special)
whether to use the special version
statement hpfc_broadcast_if_necessary(entity array, entity trg, entity lid, entity proc, bool is_lazy)
lazy or not...
expression hpfc_buffer_reference(entity array, entity index)
returns a reference to the typed common hpfc_buffer buffer, that suits array basic type and with inde...
statement hpfc_packing_of_current__buffer(entity array, bool pack)
CALL (pvmtype) HPFC {,UN}PACK.
statement hpfc_lazy_buffer_packing(entity src, entity trg, entity lid, entity proc, entity(*array_dim)(), bool is_send, bool is_lazy)
lazy in actually sending or not the packed buffer immediatly...
statement make_block_statement(list)
Make a block statement from a list of statement.
list gen_nreverse(list cp)
reverse a list in place
#define NIL
The empty list (nil in Lisp)
list gen_copy_seq(list l)
Copy a list structure.
#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
void gen_free_list(list l)
free the spine of the list
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
statement make_assign_statement(expression, expression)
statement make_continue_statement(entity)
void get_entity_dimensions(entity e, int dim, int *plow, int *pup)
bool replicated_p(entity e)
replicated_p
bool processors_dim_replicated_p(_UNUSED_ entity p, entity a, int i)
true if array a is replicated on processors p i-th dimension.
#define src(name, suf)
HPFC by Fabien Coelho, May 1993 and later...
#define BUFFER
common /hpfc_buffers/
#define PVM_INITSEND
PVM functions that may be called by the generated code.
#define BUFPCK
hpfc packing and unpacking
#define set_integer(var, i)
Very Short and very local functions moved to macros, FC 17/05/94.
#define set_expression(var, e)
#define set_logical(var, b)
entity hpfc_name_to_entity(const char *)
statement hpfc_make_call_statement(entity, list)
statement hpfc_make_call_statement(e, l) generate a call statement to function e, with expression lis...
Pcontrainte full_linearization(entity, entity, int *, entity(*)(int), bool, int)
remapping.c
entity MakeRunTimeSupportSubroutine(string, int)
run-time.c
string pvm_what_options(basic)
string pvm_what_options(b)
entity get_ith_temporary_dummy(int)
intptr_t load_hpf_number(entity)
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
string concatenate(const char *,...)
Return the concatenation of the given strings.
#define PLUS_OPERATOR_NAME
#define EQUAL_OPERATOR_NAME
#define test_to_statement(t)
#define call_to_statement(c)
#define not_expression(e)
#define NON_EQUAL_OPERATOR_NAME
#define make_empty_statement
An alias for make_empty_block_statement.
basic entity_basic(entity e)
return the basic associated to entity e if it's a function/variable/constant basic_undefined otherwis...
static int init
Maximal value set for Fortran 77.
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
expression reference_to_expression(reference r)
expression make_call_expression(entity e, list l)
Build an expression that call an function entity with an argument list.
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
statement Pvecteur_to_assign_statement(entity var, Pvecteur v)
generates var = linear expression from the Pvecteur.
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 Value_to_expression(Value v)
added interface for linear stuff.
list make_list_of_constant(int val, int number)
of expression
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
int SizeOfIthDimension(entity, int)
this function returns the size of the ith dimension of a variable e.
int NumberOfDimension(entity)
#define reference_variable(x)
#define EXPRESSION(x)
EXPRESSION.
#define entity_undefined_p(x)
#define expression_normalized(x)
#define normalized_linear(x)
#define STATEMENT(x)
STATEMENT.
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
#define exp
Avoid some warnings from "gcc -Wshadow".
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
void vect_add_elem(Pvecteur *pvect, Variable var, Value val)
void vect_add_elem(Pvecteur * pvect, Variable var, Value val): addition d'un vecteur colineaire au ve...
Value vect_coeff(Variable var, Pvecteur vect)
Variable vect_coeff(Variable var, Pvecteur vect): coefficient de coordonnee var du vecteur vect —> So...