decompiler  1.0.0
Public Member Functions | Public Attributes | List of all members
BlockEdge Struct Reference

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.
 
FlowBlockpoint
 Other end of the edge.
 
int4 reverse_index
 Index for edge coming other way.
 

Detailed Description

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.

Member Function Documentation

void BlockEdge::restoreXml ( const Element el,
BlockMap resolver 
)

Restore this edge from an XML stream.

Parameters
elis the <edge> tag
resolveris 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

Parameters
sis the output stream

References a_v_i(), FlowBlock::getIndex(), point, and reverse_index.

Referenced by BlockEdge(), FlowBlock::restoreXmlBody(), and BlockGraph::saveXmlBody().


The documentation for this struct was generated from the following files: