25 #include "pips_config.h"
60 #include "resources.h"
62 #include "constants.h"
67 list_statement_block, inst)
72 list *list_statement_block;
77 debug(8,
"find_iteration_domain",
"begin\n");
80 list_statement_block,inst);
83 (void)
fprintf(stderr,
"[find_iteration_domain] initial basis \n");
87 debug(8,
"find_iteration_domain",
"end\n");
93 list list_loop_statement;
104 debug(8,
"compute_iteration_domain",
"begin\n");
113 debug(8,
"compute_iteration_domain",
"end\n");
117 list *list_loop_statement;
126 debug(8,
"iteration_domain_from_statement",
"begin\n");
133 *list_loop_statement =
CONS (
STATEMENT,s,*list_loop_statement);
141 bool simple_block =
false;
144 simple_block = (nbl==1
151 ,nested_level,
blocks,inst);
153 *nested_level =
gen_length(*list_loop_statement);
162 *nested_level =
gen_length(*list_loop_statement);
180 debug(8,
"search_array_from_statement",
"end\n");
Pbase base_reversal(Pbase b_in)
Pbase base_reversal(Pbase b_in): produces a basis b_out, having the same basis vectors as b_in,...
static list blocks
lisp of loops
Psysteme loop_iteration_domaine_to_sc(list, Pbase *)
loop_iteration_domaine_to_sc.c
void compute_iteration_domain(list list_loop_statement, Psysteme *sc, Pbase *basis)
void iteration_domain_from_statement(list *list_loop_statement, statement s, int *nested_level, list *blocks, instruction *inst)
dg_vertex_label vertex_label
void find_iteration_domain(statement s, Psysteme *sc, Pbase *basis, nested_level, list *list_statement_block, instruction *inst)
dg_arc_label arc_label
Code Generation for Distributed Memory Machines.
instruction make_instruction_block(list statements)
Build an instruction block from a list of statements.
#define NIL
The empty list (nil in Lisp)
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)
#define CAR(pcons)
Get the value of the first element of a list.
#define CDR(pcons)
Get the list less its first element.
bool continue_statement_p(statement)
Test if a statement is a CONTINUE, that is the FORTRAN nop, the ";" in C or the "pass" in Python....
void vect_fprint(FILE *f, Pvecteur v, get_variable_name_t variable_name)
void vect_fprint(FILE * f, Pvecteur v, char * (*variable_name)()): impression d'un vecteur creux v su...
#define pips_internal_error
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
#define is_instruction_block
soft block->sequence transition
#define instruction_block(i)
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...
#define instruction_loop_p(x)
#define instruction_loop(x)
@ is_instruction_unstructured
#define instruction_tag(x)
#define statement_instruction(x)
#define STATEMENT(x)
STATEMENT.
void sc_fprint(FILE *fp, Psysteme ps, get_variable_name_t nom_var)
void sc_fprint(FILE * f, Psysteme ps, char * (*nom_var)()): cette fonction imprime dans le fichier po...
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.
#define BASE_NULLE
MACROS SUR LES BASES.