Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/constraint_compiler into...
[satune.git] / src / ASTAnalyses / orderanalysis.h
1 #ifndef ORDERANALYSIS_H
2 #define ORDERANALYSIS_H
3 #include "classlist.h"
4 #include "structs.h"
5 #include "mymemory.h"
6
7 void computeStronglyConnectedComponentGraph(OrderGraph *graph);
8 void initializeNodeInfoSCC(OrderGraph *graph);
9 void DFSNodeVisit(OrderNode *node, Vector<OrderNode *> *finishNodes, bool isReverse, bool mustvisit, uint sccNum);
10 void DFS(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
11 void DFSReverse(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
12 void completePartialOrderGraph(OrderGraph *graph);
13 void resetNodeInfoStatusSCC(OrderGraph *graph);
14 bool isMustBeTrueNode(OrderNode *node);
15 void bypassMustBeTrueNode(CSolver *This, OrderGraph *graph, OrderNode *node);
16 void removeMustBeTrueNodes(CSolver *This, OrderGraph *graph);
17 void DFSMust(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
18 void DFSClearContradictions(CSolver *solver, OrderGraph *graph, Vector<OrderNode *> *finishNodes, bool computeTransitiveClosure);
19 void reachMustAnalysis(CSolver *solver, OrderGraph *graph, bool computeTransitiveClosure);
20 void localMustAnalysisTotal(CSolver *solver, OrderGraph *graph);
21 void localMustAnalysisPartial(CSolver *solver, OrderGraph *graph);
22
23 #endif
24