FlowGraph
Class FlowGraph<K,N extends Node<K,N>>

java.lang.Object
  extended by Graph.Graph
      extended by FlowGraph.FlowGraph
Direct Known Subclasses:
AssemFlowGraph

public abstract class FlowGraph<K,N extends Node<K,N>>
extends Graph<K,N>

A control flow graph is a directed graph in which each edge indicates a possible flow of control. Also, each node in the graph defines a set of temporaries; each node uses a set of temporaries; and each node is, or is not, a move instruction.

See Also:
AssemFlowGraph

Constructor Summary
FlowGraph()
           
 
Method Summary
abstract  Temp[] def(N node)
          The set of temporaries defined by this instruction or block
abstract  boolean isMove(N node)
          True if this node represents a move instruction, i.e.
 void show(java.io.PrintWriter out)
          Print a human-readable dump for debugging.
abstract  Temp[] use(N node)
          The set of temporaries used by this instruction or block
 
Methods inherited from class Graph.Graph
addEdge, get, nodes, rmEdge, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowGraph

public FlowGraph()
Method Detail

def

public abstract Temp[] def(N node)
The set of temporaries defined by this instruction or block


use

public abstract Temp[] use(N node)
The set of temporaries used by this instruction or block


isMove

public abstract boolean isMove(N node)
True if this node represents a move instruction, i.e. one that can be deleted if def=use.


show

public void show(java.io.PrintWriter out)
Print a human-readable dump for debugging.

Overrides:
show in class Graph