25 #include "pips_config.h"
34 #include "constants.h"
69 #include "resources.h"
70 #include "array_dfg.h"
73 #include "scheduling.h"
122 fprintf(fp,
"\n Base de Temps :\n");
123 fprintf(fp,
"===============\n");
127 fprintf(fp,
"\tNon calculee\n\n");
133 for (; sched_l !=
NIL; sched_l =
CDR(sched_l))
161 for (peq = ps->
egalites; peq!=NULL;\
167 fprintf(fp,
"\t pred: TRUE\n");
170 fprintf(fp,
"\t pred: TRUE\n");
173 for (; dim_l !=
NIL; dim_l =
CDR(dim_l))
197 bool is_c_norm =
true;
200 if ((c != NULL) && (c->vecteur != NULL)
211 else is_c_norm=
false;
364 for (; lbdt !=
NIL; lbdt =
CDR(lbdt))
433 if (in_ps1 == SC_RN)
return(ret_ps);
434 if (in_ps2 == SC_RN)
return(in_ps1);
436 for (eq1 = in_ps1->egalites; eq1 != NULL; eq1 = eq1->
succ)
439 for (eq2 = in_ps2->egalites; eq2 != NULL; eq2 = eq2->
succ)
450 for (ineq1 = in_ps1->inegalites; ineq1 != NULL; ineq1 = ineq1->
succ)
453 for (ineq2=in_ps2->inegalites; ineq2 != NULL; ineq2=ineq2->
succ)
675 if ((d1 == 1) && (d2 != 1))
709 else if ((d1 != 1) && (d2 == 1))
743 else if ((d1 != 1) && (d2 != 1))
871 bool is_equal =
true;
874 while ((is_equal) && (l1 !=
NIL))
schedule make_schedule(intptr_t a1, predicate a2, list a3)
call make_call(entity a1, list a2)
expression make_expression(syntax a1, normalized a2)
basic make_basic(enum basic_utype tag, void *val)
predicate make_predicate(Psysteme a1)
storage make_storage(enum storage_utype tag, void *val)
expression copy_expression(expression p)
EXPRESSION.
value make_value(enum value_utype tag, void *val)
syntax make_syntax(enum syntax_utype tag, void *val)
static int crt_stmt
Current source statement.
statement adg_number_to_statement(int in_nb)
======================================================================
#define VALUE_TO_INT(val)
#define value_notzero_p(val)
#define value_uminus(val)
unary operators on values
#define value_zero_p(val)
#define value_mod(v1, v2)
bool base_contains_variable_p(Pbase b, Variable v)
bool base_contains_variable_p(Pbase b, Variable v): returns true if variable v is one of b's elements...
Psysteme my_sc_normalize(Psysteme ps)
==============================================================
dfg_arc_label arc_label
C3 includes
schedule true_copy_schedule(schedule s)
=================================================================
entity create_named_entity(char *name)
=====================================================================
dfg_vertex_label vertex_label
void fprint_bdt_with_stat(FILE *fp, bdt obj)
===========================================================================
void poly_chg_var(Ppolynome pp, Variable v_old, Variable v_new)
=================================================================
Psysteme suppress_sc_in_sc(Psysteme in_ps1, Psysteme in_ps2)
======================================================================
bool my_contrainte_normalize(Pcontrainte c, bool is_egalite)
=========================================================================
bool my_inegalite_normalize(Pcontrainte ineg)
==============================================================
Psysteme predicate_to_system(predicate p)
=================================================================
bool system_contains_var(Psysteme ps, Variable var)
=====================================================================
bool list_of_exp_equals_p(list l1, list l2)
======================================================================
bdt true_copy_bdt(bdt b)
=====================================================================
bool exp_equals_p(expression e1, expression e2)
======================================================================
void analyze_expression(expression *e, int *d)
=====================================================================
struct _newgen_struct_type_ * type
#define CONTRAINTE_UNDEFINED
Pcontrainte contrainte_make(Pvecteur pv)
Pcontrainte contrainte_make(Pvecteur pv): allocation et initialisation d'une contrainte avec un vecte...
#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.
#define full_name(dir, name)
bool expression_constant_p(expression)
HPFC module by Fabien COELHO.
#define ADD_ELEMENT_TO_LIST(_list, _type, _element)
Value vect_pgcd_all(Pvecteur v)
Value vect_pgcd(Pvecteur v): calcul du pgcd de tous les coefficients non nul d'un vecteur v.
bool vect_equal(Pvecteur v1, Pvecteur v2)
bool vect_equal(Pvecteur v1, Pvecteur v2): test a egalite de deux vecteurs
Value vect_pgcd_except(Pvecteur v, Variable var)
Value vect_pgcd_except(Pvecteur v, Variable var): calcul du pgcd de tous les coefficients non nul d'u...
#define MODULE_SEP_STRING
string concatenate(const char *,...)
Return the concatenation of the given strings.
void * gen_find_tabulated(const char *, int)
void pu_inegalite_fprint(FILE *, Pcontrainte, const char *(*)(entity))
print.c
void pu_egalite_fprint(FILE *, Pcontrainte, const char *(*)(entity))
#define SCHEDULE(x)
SCHEDULE.
#define schedule_predicate(x)
#define schedule_statement(x)
void unnormalize_expression(void *st)
void unnormalize_expression(expression exp): puts all the normalized field of expressions in "st" to ...
#define polynome_monome(pp)
#define POLYNOME_NUL_P(pp)
#define polynome_succ(pp)
string expression_to_string(expression e)
void print_statement(statement)
Print a statement on stderr.
#define ENTITY_DIVIDE_P(e)
#define ENTITY_MULTIPLY_P(e)
#define NORMALIZE_EXPRESSION(e)
#define make_entity(n, t, s, 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...
expression Pvecteur_to_expression(Pvecteur vect)
AP, sep 25th 95 : some usefull functions moved from static_controlize/utils.c.
int expression_to_int(expression exp)
================================================================
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
type MakeTypeVariable(basic, cons *)
BEGIN_EOLE.
#define normalized_undefined
#define EXPRESSION(x)
EXPRESSION.
#define expression_undefined
#define normalized_tag(x)
#define predicate_undefined
#define expression_normalized(x)
#define call_arguments(x)
#define normalized_linear(x)
#define expression_syntax(x)
#define predicate_system(x)
#define entity_domain
newgen_syntax_domain_defined
struct Ssysteme * Psysteme
Psysteme sc_make(Pcontrainte leg, Pcontrainte lineg)
Psysteme sc_make(Pcontrainte leg, Pcontrainte lineg): allocation et initialisation d'un systeme d'equ...
void sc_creer_base(Psysteme ps)
void sc_creer_base(Psysteme ps): initialisation des parametres dimension et base d'un systeme lineair...
Psysteme sc_dup(Psysteme ps)
Psysteme sc_dup(Psysteme ps): should becomes a link.
void sc_elim_empty_constraints(Psysteme ps, bool process_equalities)
void sc_elim_empty_constraints(Psysteme ps, bool process_equalities): elimination des "fausses" contr...
Psysteme sc_elim_db_constraints(Psysteme ps)
Psysteme sc_elim_db_constraints(Psysteme ps): elimination des egalites et des inegalites identiques o...
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
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 ...
Pvecteur vect_clean(Pvecteur v)
Pvecteur vect_clean(Pvecteur v): elimination de tous les couples dont le coefficient vaut 0 dans le v...
Pvecteur vect_div(Pvecteur v, Value x)
Pvecteur vect_div(Pvecteur v, Value x): division du vecteur v par le scalaire x, si x est different d...
Pvecteur vect_multiply(Pvecteur v, Value x)
Pvecteur vect_multiply(Pvecteur v, Value x): multiplication du vecteur v par le scalaire x,...
struct Scontrainte * succ
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
struct cons * cdr
The pointer to the next element.
#define exp
Avoid some warnings from "gcc -Wshadow".
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
struct Svecteur * Pvecteur
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Pvecteur vect_add(Pvecteur v1, Pvecteur v2)
package vecteur - operations binaires
Pvecteur vect_substract(Pvecteur v1, Pvecteur v2)
Pvecteur vect_substract(Pvecteur v1, Pvecteur v2): allocation d'un vecteur v dont la valeur est la di...
Value vect_coeff(Variable var, Pvecteur vect)
Variable vect_coeff(Variable var, Pvecteur vect): coefficient de coordonnee var du vecteur vect —> So...
void vect_chg_coeff(Pvecteur *ppv, Variable var, Value val)
void vect_chg_coeff(Pvecteur *ppv, Variable var, Value val): mise de la coordonnee var du vecteur *pp...
void vect_chg_var(Pvecteur *ppv, Variable v_old, Variable v_new)
void vect_chg_var(Pvecteur *ppv, Variable v_old, Variable v_new) replace the variable v_old by v_new
void vect_normalize(Pvecteur v)
void vect_normalize(Pvecteur v): division de tous les coefficients de v par leur pgcd; "normalisation...