25 #include "pips_config.h"
43 #include "constants.h"
83 if (d ==
NIL)
return(
false) ;
84 for (cp1 = d ; !
ENDP(cp1) ; cp1 =
CDR( cp1 )) {
123 "_",oper,
"_",str,NULL);
182 make_movements_loop_body_wp65(
module,receive_code,ent,local_indices,var_id,sc_neg,sc_pos,index_base,
rank,number_of_lower_bounds,number_of_upper_bounds)
194 int number_of_lower_bounds,number_of_upper_bounds;
197 expression expr_ind1,expr_ind2,expr,expr2,exp_ent,expr_cond;
198 entity new_ind1,new_ind2, mod;
199 entity operator_assign,operator_minus,operator_plus,operator_le,
200 operator_receive,operator_send;
201 string lower_or_equal;
209 cons * args, * args2, * lex2, * lex3;
213 debug(8,
"make_movements_loop_body_wp65",
"begin\n");
235 str1=
int2a(nb_bytes);
352 number_of_lower_bounds,
359 number_of_upper_bounds,
374 debug(8,
"make_movements_loop_body_wp65",
"end\n");
416 entity operator_receive,operator_send;
417 cons * args, * args2;
422 debug(8,
"make_datum_movement",
"begin\n");
430 str1=
int2a(nb_bytes);
462 lbody = (receive_code) ?
466 debug(8,
"make_datum_movement",
"end\n");
497 operator_receive, operator_send,
516 str1=
int2a(nb_bytes);
533 lbody = (receive_code) ?
functional make_functional(list a1, type a2)
call make_call(entity a1, list a2)
expression make_expression(syntax a1, normalized a2)
storage make_storage_rom(void)
value make_value(enum value_utype tag, void *val)
reference make_reference(entity a1, list a2)
test make_test(expression a1, statement a2, statement a3)
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(enum instruction_utype tag, void *val)
syntax make_syntax(enum syntax_utype tag, void *val)
synchronization make_synchronization_none(void)
type make_type(enum type_utype tag, void *val)
void fprint_string_Value(FILE *, char *, Value)
string make_entity_fullname(const char *module_name, const char *local_name)
END_EOLE.
statement make_block_statement(list)
Make a block statement from a list of statement.
#define ENDP(l)
Test if a list is empty.
#define NIL
The empty list (nil in Lisp)
#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 CDR(pcons)
Get the list less its first element.
statement make_continue_statement(entity)
Value offset_dim1
include "generation.h"
statement make_statement_operator(entity oper, cons *args)
bool variable_in_declaration_module_p(entity m, entity v)
statement make_movements_loop_body_wp65(entity module, bool receive_code, entity ent, Pbase local_indices, Pbase var_id, Psysteme sc_neg, Psysteme sc_pos, Pbase index_base, int rank, int number_of_lower_bounds, int number_of_upper_bounds)
statement make_movements_loop_body_wp65(module,receive_code, ent,local_indices,var_id,...
void wp65_debug_print_text(entity m, statement s)
include "values.h"
void wp65_debug_print_module(entity m, statement s)
static entity find_entity(entity module, Pvecteur pv, string st)
entity find_operator(entity module, string oper, string str)
statement make_datum_movement(entity module, bool receive_code, entity ent, Pbase local_indices, Pbase var_id)
statement make_datum_movement(module,receive_code,ent, local_indices,var_id)
statement make_movement_scalar_wp65(entity module, bool receive_code, reference r, entity var_id)
statement make_movement_scalar_wp65(receive_code,r)
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
#define SUFFIX_FOR_TEMP_VAR2_IN_INNER_LOOP
#define SUFFIX_FOR_TEMP_VAR1_IN_INNER_LOOP
expression lower_bound_generation(Psysteme sc_neg, Pbase index_base, int number_of_lower_bounds, int loop_rank)
This fonction generates the lower bounds of the "loop_rank"-th loop.
expression upper_bound_generation(Psysteme sc_pos, Pbase index_base, int number_of_upper_bounds, int loop_rank)
This fonction generates the upper bounds of the "loop_rank"-th loop.
expression make_op_expression(entity, cons *)
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
#define MODULE_SEP_STRING
#define STATEMENT_ORDERING_UNDEFINED
mapping.h inclusion
string concatenate(const char *,...)
Return the concatenation of the given strings.
void * gen_find_tabulated(const char *, int)
text Text_Statement(entity, int, statement)
text text_module(entity, statement)
void print_statement(statement)
Print a statement on stderr.
#define MINUS_OPERATOR_NAME
#define PLUS_OPERATOR_NAME
#define make_entity(n, t, s, i)
#define test_to_statement(t)
#define STATEMENT_NUMBER_UNDEFINED
default values
#define ASSIGN_OPERATOR_NAME
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 local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
entity entity_empty_label(void)
const char * module_local_name(entity e)
Returns the module local user name.
expression make_vecteur_expression(Pvecteur pv)
make expression for vector (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...
extensions empty_extensions(void)
extension.c
void AddEntityToDeclarations(entity, entity)
END_EOLE.
entity make_scalar_integer_entity(const char *, const char *)
Create an integer variable of name "name" in module of name "module_name".
_int SizeOfElements(basic)
This function returns the length in bytes of the Fortran or C type represented by a basic,...
#define normalized_undefined
#define reference_variable(x)
#define code_declarations(x)
#define EXPRESSION(x)
EXPRESSION.
#define type_variable_p(x)
#define entity_domain
newgen_syntax_domain_defined
#define variable_basic(x)
#define STATEMENT(x)
STATEMENT.
#define entity_initial(x)
Psysteme sc_dup(Psysteme ps)
Psysteme sc_dup(Psysteme ps): should becomes a link.
bool sc_minmax_of_variable(Psysteme ps, Variable var, Value *pmin, Value *pmax)
void sc_minmax_of_variable(Psysteme ps, Variable var, Value *pmin, *pmax): examine un systeme pour tr...
Psysteme sc_append(Psysteme s1, Psysteme s2)
Psysteme sc_append(Psysteme s1, Psysteme s2): calcul de l'intersection des polyedres definis par s1 e...
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
void print_text(FILE *fd, text t)
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
#define VECTEUR_NUL
DEFINITION DU VECTEUR NUL.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Pvecteur vect_dup(Pvecteur v_in)
Pvecteur vect_dup(Pvecteur v_in): duplication du vecteur v_in; allocation de et copie dans v_out;.
Pvecteur vect_new(Variable var, Value coeff)
Pvecteur vect_new(Variable var,Value coeff): allocation d'un vecteur colineaire au vecteur de base va...
Pvecteur vect_add(Pvecteur v1, Pvecteur v2)
package vecteur - operations binaires
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...