systemc-clang 2.0.0
Parsing SystemC constructs
Loading...
Searching...
No Matches
GlobalSuspensionAutomata.h
Go to the documentation of this file.
1#ifndef _GLOBAL_SUSPENSION_AUTOMATA_H_
2#define _GLOBAL_SUSPENSION_AUTOMATA_H_
3
4#include "FindGPUMacro.h"
5#include "Model.h"
6#include "Utility.h"
7namespace systemc_clang {
8using namespace clang;
9using namespace std;
10
12public:
13 GlobalSuspensionAutomata(Model *, raw_ostream &, ASTContext *);
15
16 typedef pair<float, int> timePairType;
17 typedef vector<Transition *> transitionVectorType;
18
19 typedef pair<EntryFunctionContainer *, int> entryFunctionInstanceIdPairType;
20 typedef map<EntryFunctionContainer *, int> entryFunctionInstanceIdMapType;
21
22 typedef pair<entryFunctionInstanceIdPairType, transitionVectorType>
24 typedef map<entryFunctionInstanceIdPairType, transitionVectorType>
26
27 typedef pair<Transition *, timePairType> transitionTimePairType;
28 typedef map<Transition *, timePairType> transitionTimeMapType;
29
30 typedef pair<string, timePairType> eventNotificationTimePairType;
31 typedef map<string, timePairType> eventNotificationTimeMapType;
32
33 typedef pair<State *, vector<Transition *>> stateTransitionsPairType;
34 typedef map<State *, vector<Transition *>> stateTransitionsMapType;
35
36 typedef pair<Transition *, bool> visitTransitionPairType;
37 typedef map<Transition *, bool> visitTransitionMapType;
38
39 typedef pair<EntryFunctionContainer *, FindGPUMacro::forStmtGPUMacroMapType>
41 typedef map<EntryFunctionContainer *, FindGPUMacro::forStmtGPUMacroMapType>
43
44 typedef pair<SusCFG *, GPUMacro *> susCFGBlockGPUMacroPairType;
45 typedef map<SusCFG *, GPUMacro *> susCFGBlockGPUMacroMapType;
46
47 typedef pair<timePairType, vector<SusCFG *>> commonTimeDPPairType;
48 typedef map<timePairType, vector<SusCFG *>> commonTimeDPMapType;
49
54 void initializeGpuMap();
55 bool GPUMap(float, vector<SusCFG *>, float &);
56 vector<SusCFG *> arrangeGPUSusCFGBlocks(vector<SusCFG *>);
57 float maxTime(vector<SusCFG *>, unsigned int);
58 float max(float, float);
59 vector<SusCFG *> merge_sort(vector<SusCFG *>, vector<SusCFG *>);
60 void initialise();
61 string getArgumentName(Expr *);
62 bool isNotifyCall(const CFGStmt *);
63 void genGSauto();
64 string getNotifyEventName(const CFGStmt *);
65 void dump();
66
76
77private:
78 raw_ostream &_os;
79 ASTContext *_a;
93};
94} // namespace systemc_clang
95#endif
A set of utility functions in the Utility class.
std::vector< clang::CallExpr * > NotifyCallListType
Definition FindNotify.h:20
pair< EntryFunctionContainer *, int > entryFunctionInstanceIdPairType
map< EntryFunctionContainer *, FindGPUMacro::forStmtGPUMacroMapType > entryFunctionMacroMapType
float maxTime(vector< SusCFG * >, unsigned int)
pair< entryFunctionInstanceIdPairType, transitionVectorType > instanceFunctionSautoPairType
vector< SusCFG * > merge_sort(vector< SusCFG * >, vector< SusCFG * >)
pair< SusCFG *, GPUMacro * > susCFGBlockGPUMacroPairType
pair< timePairType, vector< SusCFG * > > commonTimeDPPairType
map< entryFunctionInstanceIdPairType, transitionVectorType > instanceFunctionSautoMapType
map< Transition *, timePairType > transitionTimeMapType
bool GPUMap(float, vector< SusCFG * >, float &)
map< timePairType, vector< SusCFG * > > commonTimeDPMapType
map< SusCFG *, GPUMacro * > susCFGBlockGPUMacroMapType
map< State *, vector< Transition * > > stateTransitionsMapType
pair< string, timePairType > eventNotificationTimePairType
instanceFunctionSautoMapType getInstanceFunctionSautoMap()
transitionVectorType getTransitionsAtTime(timePairType)
instanceFunctionSautoMapType _instanceFunctionSautoMap
map< string, timePairType > eventNotificationTimeMapType
pair< State *, vector< Transition * > > stateTransitionsPairType
GlobalSuspensionAutomata(Model *, raw_ostream &, ASTContext *)
pair< EntryFunctionContainer *, FindGPUMacro::forStmtGPUMacroMapType > entryFunctionMacroPairType
vector< SusCFG * > arrangeGPUSusCFGBlocks(vector< SusCFG * >)
eventNotificationTimeMapType _eventNotificationTimeMap
pair< Transition *, timePairType > transitionTimePairType
map< EntryFunctionContainer *, int > entryFunctionInstanceIdMapType
std::map< ModuleInstance *, std::vector< ModuleInstance * > > moduleInstanceMapType
Definition Model.h:35
Clang forward declarations.
Definition FindArgument.h:6