sofya.graphs.cfg
Class BranchFlowProcessor

java.lang.Object
  extended by sofya.graphs.cfg.BranchFlowProcessor
All Implemented Interfaces:
SConstants, CFGTransformer

public class BranchFlowProcessor
extends java.lang.Object
implements CFGTransformer, SConstants

The branch flow processor is a transformer which determines the conditional and decision based control flow in the graph and annotates the edges in the graph with numeric IDs that identify those branch dominated paths in the control flow graph.

Version:
11/16/2004
Author:
Alex Kinneer

Nested Class Summary
 
Nested classes/interfaces inherited from interface sofya.base.SConstants
SConstants.BlockLabel, SConstants.BlockObjectType, SConstants.BlockSubType, SConstants.BlockType, SConstants.BranchObjectType, SConstants.BranchType, SConstants.EDObjectType, SConstants.TraceObjectType
 
Field Summary
 
Fields inherited from interface sofya.base.SConstants
DEFAULT_PORT, INST_COMPATIBLE, INST_OLD_UNSUPPORTED, INST_OPT_NORMAL, INST_OPT_SEQUENCE, SIG_CHKALIVE, SIG_ECHO
 
Constructor Summary
BranchFlowProcessor()
          Creates a branch flow processor.
 
Method Summary
 void transformCFG(CFG cfg)
          Determines and propagates branch edge IDs through the graph.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BranchFlowProcessor

public BranchFlowProcessor()
Creates a branch flow processor.

Method Detail

transformCFG

public void transformCFG(CFG cfg)
                  throws TransformationException
Determines and propagates branch edge IDs through the graph.

Specified by:
transformCFG in interface CFGTransformer
Parameters:
cfg - CFG for which to compute branch IDs.
Throws:
TransformationException - If the CFG is malformed in such a way that the algorithm cannot complete.