added project
This commit is contained in:
117
dvm/fdvm/trunk/Sage/lib/include/dependence.h
Normal file
117
dvm/fdvm/trunk/Sage/lib/include/dependence.h
Normal file
@@ -0,0 +1,117 @@
|
||||
/*********************************************************************/
|
||||
/* pC++/Sage++ Copyright (C) 1993 */
|
||||
/* Indiana University University of Oregon University of Rennes */
|
||||
/*********************************************************************/
|
||||
|
||||
|
||||
|
||||
/* declaration for the dependencies computation and use in the toolbox */
|
||||
|
||||
/* on declare de macro d'acces aux dependence de donnee */
|
||||
|
||||
#define BIF_DEP_STRUCT1(NODE) ((NODE)->entry.Template.dep_ptr1)
|
||||
#define BIF_DEP_STRUCT2(NODE) ((NODE)->entry.Template.dep_ptr2)
|
||||
|
||||
#define FIRST_DEP_IN_PROJ(X) ((X)->head_dep)
|
||||
/* decription d'une dependance */
|
||||
|
||||
#define DEP_ID(DEP) ((DEP)->id)
|
||||
#define DEP_NEXT(DEP) ((DEP)->thread)
|
||||
#define DEP_TYPE(DEP) ((DEP)->type)
|
||||
#define DEP_DIRECTION(DEP) ((DEP)->direct)
|
||||
#define DEP_SYMB(DEP) ((DEP)->symbol)
|
||||
#define DEP_FROM_BIF(DEP) (((DEP)->from).stmt)
|
||||
#define DEP_FROM_LL(DEP) (((DEP)->from).refer)
|
||||
#define DEP_TO_BIF(DEP) (((DEP)->to).stmt)
|
||||
#define DEP_TO_LL(DEP) (((DEP)->to).refer)
|
||||
#define DEP_FROM_FWD(DEP) ((DEP)->from_fwd)
|
||||
#define DEP_FROM_BACK(DEP) ((DEP)->from_back)
|
||||
#define DEP_TO_FWD(DEP) ((DEP)->to_fwd)
|
||||
#define DEP_TO_BACK(DEP) ((DEP)->to_back)
|
||||
|
||||
|
||||
/* la forme normale de dependence de donnee est le vecteur de direction */
|
||||
|
||||
/* on rappel temporairement la forme des dep (sets.h)
|
||||
struct dep { data dependencies
|
||||
|
||||
int id; identification for reading/writing
|
||||
PTR_DEP thread;
|
||||
|
||||
char type; flow-, output-, or anti-dependence
|
||||
char direct[MAX_DEP]; direction/distance vector
|
||||
|
||||
PTR_SYMB symbol; symbol table entry
|
||||
struct ref from; tail of dependence
|
||||
struct ref to; head of dependence
|
||||
|
||||
PTR_DEP from_fwd, from_back; list of dependencies going to tail
|
||||
PTR_DEP to_fwd, to_back; list of dependencies going to head
|
||||
|
||||
} ;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* pour la gestion memoire */
|
||||
struct chaining
|
||||
{
|
||||
char *zone;
|
||||
struct chaining *list;
|
||||
};
|
||||
|
||||
typedef struct chaining *ptchaining;
|
||||
|
||||
|
||||
struct stack_chaining
|
||||
{
|
||||
ptchaining first;
|
||||
ptchaining last;
|
||||
struct stack_chaining *prev;
|
||||
struct stack_chaining *next;
|
||||
int level;
|
||||
};
|
||||
|
||||
typedef struct stack_chaining *ptstack_chaining;
|
||||
|
||||
/* structure pour les graphes de dependence */
|
||||
#define MAXSUC 100
|
||||
|
||||
struct graph
|
||||
{
|
||||
int id; /* identificateur */
|
||||
int linenum;
|
||||
int mark;
|
||||
int order;
|
||||
PTR_BFND stmt;
|
||||
PTR_LLND expr;
|
||||
PTR_LLND from_expr[MAXSUC];
|
||||
PTR_LLND to_expr[MAXSUC];
|
||||
PTR_DEP dep_struct[MAXSUC];
|
||||
char *dep_vect[MAXSUC];
|
||||
char type[MAXSUC];
|
||||
struct graph *suc[MAXSUC]; /* next */
|
||||
struct graph *pred[MAXSUC]; /* next */
|
||||
struct graph *list; /* chaine les noeuds d'un graphe */
|
||||
};
|
||||
|
||||
typedef struct graph *PTR_GRAPH;
|
||||
|
||||
#define CHAIN_LIST(NODE) ((NODE)->list)
|
||||
#define GRAPH_ID(NODE) ((NODE)->id)
|
||||
#define GRAPH_ORDER(NODE) ((NODE)->order)
|
||||
#define GRAPH_MARK(NODE) ((NODE)->mark)
|
||||
#define GRAPH_LINE(NODE) ((NODE)->linenum)
|
||||
#define GRAPH_BIF(NODE) ((NODE)->stmt)
|
||||
#define GRAPH_LL(NODE) ((NODE)->expr)
|
||||
#define GRAPH_DEP(NODE) (((NODE)->dep_struct))
|
||||
#define GRAPH_VECT(NODE) (((NODE)->dep_vect))
|
||||
#define GRAPH_TYPE(NODE) ((NODE)->type)
|
||||
#define GRAPH_SUC(NODE) (((NODE)->suc))
|
||||
#define GRAPH_PRED(NODE) (((NODE)->pred))
|
||||
#define GRAPH_LL_FROM(NODE) (((NODE)->from_expr))
|
||||
#define GRAPH_LL_TO(NODE) (((NODE)->to_expr))
|
||||
|
||||
|
||||
#define NOT_ORDERED -1
|
||||
Reference in New Issue
Block a user