48 : HLSMgr(_HLSMgr), CGMan(_HLSMgr->CGetCallGraphManager())
61 const unsigned int this_fun_id =
CGMan->get_function(v);
62 HLSMgr->RDiscr->call_sites_info->fu_id_to_call_ids[this_fun_id];
73 const unsigned int caller_id =
CGMan->get_function(boost::source(e, g));
76 HLSMgr->RDiscr->call_sites_info->fu_id_to_call_ids[caller_id].insert(callid);
77 THROW_ASSERT(
HLSMgr->RDiscr->call_sites_info->call_id_to_called_id[callid].empty() or callid == 0,
78 "direct call " +
STR(callid) +
" calls more than one function");
79 HLSMgr->RDiscr->call_sites_info->call_id_to_called_id[callid].insert(called_id);
83 HLSMgr->RDiscr->call_sites_info->fu_id_to_call_ids[caller_id].insert(callid);
84 HLSMgr->RDiscr->call_sites_info->call_id_to_called_id[callid].insert(called_id);
85 HLSMgr->RDiscr->call_sites_info->indirect_calls.insert(callid);
Data structure representing the entire HLS information.
CallSitesCollectorVisitor(const HLS_managerRef &_HLSMgr)
Constructor.
#define STR(s)
Macro which performs a lexical_cast to a string.
Auxiliary methods for manipulating string.
This class is the view of a call graph.
const HLS_managerRef HLSMgr
A refcount to the HLSMgr.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
#define THROW_ERROR(str_expr)
helper function used to throw an error in a standard way
void back_edge(const EdgeDescriptor &, const CallGraph &)
const CallGraphManagerConstRef CGMan
A refcount to the call graph manager.
void start_vertex(const vertex &, const CallGraph &)
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
void discover_vertex(const vertex &v, const CallGraph &)
const FunctionEdgeInfoConstRef CGetFunctionEdgeInfo(const EdgeDescriptor edge) const
Return the info associated with an edge.
~CallSitesCollectorVisitor()
Destructor.
void examine_edge(const EdgeDescriptor &, const CallGraph &)
boost::graph_traits< graph >::edge_descriptor EdgeDescriptor
edge definition.
#define THROW_ASSERT(cond, str_expr)
helper function used to check an assert and if needed to throw an error in a standard way ...