43 #ifndef CDFG_EDGE_INFO_HPP 44 #define CDFG_EDGE_INFO_HPP 59 #define TRED_SELECTOR (1 << 0) 63 #define CFG_SELECTOR (1 << 1) 64 #define FB_CFG_SELECTOR (1 << 2) 66 #define FCFG_SELECTOR (CFG_SELECTOR | FB_CFG_SELECTOR) 70 #define CDG_SELECTOR (1 << 3) 71 #define FB_CDG_SELECTOR (1 << 4) 73 #define FCDG_SELECTOR (CDG_SELECTOR | FB_CDG_SELECTOR) 77 #define ECFG_SELECTOR (1 << 5) 80 #define T_COND (std::numeric_limits<unsigned int>::max()) 81 #define F_COND (std::numeric_limits<unsigned int>::max() - 1) 83 #define NO_COND (std::numeric_limits<unsigned int>::max() - 2) 85 #define default_COND (std::numeric_limits<unsigned int>::max() - 3) 95 std::map<int, CustomOrderedSet<unsigned int>>
labels;
153 #define CDG_TRUE_CHECK(data, edge_index) \ 154 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->CdgEdgeT() 161 #define CDG_FALSE_CHECK(data, edge_index) \ 162 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->CdgEdgeF() 169 #define CFG_TRUE_CHECK(data, edge_index) \ 170 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->CfgEdgeT() 177 #define CFG_FALSE_CHECK(data, edge_index) \ 178 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->CfgEdgeF() 185 #define FLG_TRUE_CHECK(data, edge_index) \ 186 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->FlgEdgeT() 193 #define FLG_FALSE_CHECK(data, edge_index) \ 194 Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data)) and Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->FlgEdgeF() 202 #define EDGE_GET_NODEID(data, edge_index, type) Cget_edge_info<CdfgEdgeInfo>(edge_index, *(data))->get_nodeID(type) bool CdgEdgeT() const
Function returning true when the edge is a then control dependence edge.
Information associated with an operation or basic block graph.
CONSTREF_FORWARD_DECL(BehavioralHelper)
redefinition of map to manage ordered/unordered structures
bool Switch() const
Return true if it is an edge associated with a switch.
CdfgEdgeInfo()=default
Constructor.
const std::string PrintLabels(const int selector, const BehavioralHelperConstRef BH) const
Return the string of the labels associated with the edge.
redefinition of set to manage ordered/unordered structures
std::map< int, CustomOrderedSet< unsigned int > > labels
edge labels; key is the selector
const CustomOrderedSet< unsigned int > & get_nodeID(const int selector) const
Return the nodeID of type type associated with this edge information.
Base class storing user data information.
Template definition of refcount.
void add_nodeID(unsigned int nodeID, const int type)
Add a nodeID of type type to this edge_info.
Base class description of data information associated with each edge of a graph.
bool CfgEdgeF() const
Function returning true when the edge is an else control flow edge.
bool CdgEdgeF() const
Function returning true when the edge is an else control dependence edge.
bool CfgEdgeT() const
Function returning true when the edge is a then control flow edge.