decompiler
1.0.0
|
A control-flow edge between blocks (FlowBlock) More...
#include <block.hh>
Public Member Functions | |
BlockEdge (void) | |
Constructor for use with restoreXml. | |
BlockEdge (FlowBlock *pt, uint4 lab, int4 rev) | |
Constructor. | |
void | saveXml (ostream &s) const |
Save the edge to an XML stream. More... | |
void | restoreXml (const Element *el, BlockMap &resolver) |
Restore this edge from an XML stream. More... | |
Public Attributes | |
uint4 | label |
Label of the edge. | |
FlowBlock * | point |
Other end of the edge. | |
int4 | reverse_index |
Index for edge coming other way. | |
A control-flow edge between blocks (FlowBlock)
The edge is owned by the source block and can have FlowBlock::edge_flags labels applied to it. The point indicates the FlowBlock at the other end from the source block. NOTE: The control-flow direction of the edge can only be determined from context, whether the edge is in the incoming or outgoing edge list.
Restore this edge from an XML stream.
el | is the <edge> tag |
resolver | is used to cross-reference the edge's FlowBlock endpoints |
References BlockMap::findLevelBlock(), Element::getAttributeValue(), label, point, and reverse_index.
Referenced by BlockEdge(), BlockGraph::emit(), FlowBlock::restoreNextInEdge(), and FlowBlock::restoreXmlBody().
void BlockEdge::saveXml | ( | ostream & | s | ) | const |
Save the edge to an XML stream.
The edge is saved assuming we already know what block we are in
s | is the output stream |
References a_v_i(), FlowBlock::getIndex(), point, and reverse_index.
Referenced by BlockEdge(), FlowBlock::restoreXmlBody(), and BlockGraph::saveXmlBody().