moved
This commit is contained in:
134
Sapfor/_src/SageAnalysisTool/depInterface.h
Normal file
134
Sapfor/_src/SageAnalysisTool/depInterface.h
Normal file
@@ -0,0 +1,134 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////// includes for data dep information ////////////////////////
|
||||
////// FB July 94 Indiana University ///////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// the set class
|
||||
#include "set.h"
|
||||
|
||||
#include "definesValues.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// external for the anotation system
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
#include "annotationDriver.h"
|
||||
extern SgAnnotation *getTheAnnotationThatApply(SgStatement *stmt, char *kind);
|
||||
extern SgAnnotation * getTheAnnotationWithString(char *kind);
|
||||
extern int isAnnotationWithString(SgStatement *stmt, char *kind, int len);
|
||||
extern void initAnnotationSystem(int printann);
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// some external from loop transformations
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
extern int tileLoops(SgStatement *func, SgStatement *b, int *size, int nb);
|
||||
extern int distributeLoopSCC(SgStatement *b, int *sccTable, int leadingdim, int numSCC);
|
||||
extern int loopFusion(SgStatement *loop1,SgStatement *loop2);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// Control FLOW part of declaration
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
extern void controlFlow(SgStatement *stmt, SgStatement *func,
|
||||
SgStatement **pred, SgStatement **suc,
|
||||
int *predin,int *sucint);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// declaration for the data flow framework
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
extern Set *genSet[MAXNODE];
|
||||
extern Set *killSet[MAXNODE];
|
||||
extern Set *inSet[MAXNODE];
|
||||
extern Set *outSet[MAXNODE];
|
||||
|
||||
extern void iterativeForwardFlowAnalysis(SgFile *file,
|
||||
SgStatement *func,
|
||||
Set *(*giveGenSet)(SgStatement *func,SgStatement *stmt),
|
||||
Set *(*giveKillSet)(SgStatement *func,SgStatement *stmt),
|
||||
int (*feq)(void *e1, void *e2),
|
||||
void *(*fcomb)(void *e1, void *e2),
|
||||
void (*fp)(void *e1));
|
||||
|
||||
extern void generalIterativeFlowAnalysis(SgFile *file,
|
||||
SgStatement *func,
|
||||
Set *(*transfertSet)(SgStatement *func,SgStatement *stmt, Set *setin),
|
||||
int (*feq)(void *e1, void *e2),
|
||||
void* (*fcomb)(void *e1, void *e2),
|
||||
void (*fp)(void *e1));
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// declaration for defuse and reaching definition
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "definitionSet.h"
|
||||
extern Set *makeGenSet(SgStatement *func,SgStatement *stmt);
|
||||
extern Set *makeKillSet(SgStatement *func,SgStatement *stmt);
|
||||
extern int symbRefEqual(void *e1, void *e2);
|
||||
extern void myPrint(void *e1);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// Part for constante propagation.....
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "constanteSet.h"
|
||||
extern int constPropEqual(void *e1, void *e2);
|
||||
extern void constPropPrint(void *e1);
|
||||
extern void * constPropCombine(void *e1, void *e2);
|
||||
extern Set *transConstante(SgStatement *func,SgStatement *stmt, Set *setin);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// Part for induction variable
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "inducVar.h"
|
||||
extern int inducVarEqual(void *e1, void *e2);
|
||||
extern void inducVarPrint(void *e1);
|
||||
extern int definitionInStmt(SgStatement *func,SgStatement *stmtin, SgExpression *defvar);
|
||||
extern Set *computeConstanteInStmt(SgStatement *func,SgStatement *stmtin);
|
||||
extern Set *computeInductionVariables(SgStatement *func,SgStatement *stmt);
|
||||
extern Set *getAllInductionVar(SgStatement *func,
|
||||
SgStatement *stmt,int level, int *num,int include);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// Part for computing array reference
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "arrayRef.h"
|
||||
extern int NbLinearRef;
|
||||
extern int NbNonLinearRef;
|
||||
extern int linearRepArray(SgExpression *ex1, SgSymbol **symb,
|
||||
int size,
|
||||
int linear[MAXDIMARRAY][MAXNESTEDLOOP],
|
||||
int *cst);
|
||||
extern int arrayEqual(void *e1, void *e2);
|
||||
extern void arrayPrint(void *e1);
|
||||
extern Set *loopArrayAccessAnalysis(SgStatement *func,SgStatement *stmt,
|
||||
SgSymbol **tsymb, Set **induc);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// for data dependence computation (uses omega Test)
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dependence.h"
|
||||
extern Set *computeLoopDependencies(SgStatement *func,Set *inset, SgSymbol **tsymb, Set *induc);
|
||||
extern "C" void SetOmegaDebug();
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// for data dependence computation (uses omega Test)
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "depGraph.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// from intrinsic.C
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
extern int isStmtCallToFuncNotIntrinsic(SgStatement *stmt);
|
||||
extern int isSymbolIntrinsic(SgSymbol *symb);
|
||||
extern int isExprCallToFuncNotIntrinsic(SgExpression *exp);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user