fabil.visit
Class ReadWriteChecker

java.lang.Object
  extended by DataFlow
      extended by fabil.visit.ReadWriteChecker

public class ReadWriteChecker
extends DataFlow

This dataflow analysis checks whether or not a local variable (or more precisely what that variable points to) is guaranteed to have already been read from or written to at a point in a method.

Author:
xinz

Nested Class Summary
protected static class ReadWriteChecker.DataFlowItem
           
static class ReadWriteChecker.State
          The access state of a variable (resident, read, written).
 
Constructor Summary
ReadWriteChecker(Job job, TypeSystem ts, NodeFactory nf)
           
 
Method Summary
protected  void check(FlowGraph graph, Term n, boolean entry, Item inItem, java.util.Map outItems)
           
protected  Item confluence(java.util.List items, Term node, boolean entry, FlowGraph graph)
           
protected  Item createInitialItem(FlowGraph graph, Term node, boolean entry)
           
protected  java.util.Map flow(Item in, FlowGraph graph, Term n, boolean entry, java.util.Set edgeKeys)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReadWriteChecker

public ReadWriteChecker(Job job,
                        TypeSystem ts,
                        NodeFactory nf)
Method Detail

createInitialItem

protected Item createInitialItem(FlowGraph graph,
                                 Term node,
                                 boolean entry)

confluence

protected Item confluence(java.util.List items,
                          Term node,
                          boolean entry,
                          FlowGraph graph)

flow

protected java.util.Map flow(Item in,
                             FlowGraph graph,
                             Term n,
                             boolean entry,
                             java.util.Set edgeKeys)

check

protected void check(FlowGraph graph,
                     Term n,
                     boolean entry,
                     Item inItem,
                     java.util.Map outItems)