com.ibm.wala.ipa.callgraph.propagation.cfa
Class ContextInsensitiveSSAInterpreter

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.rta.ContextInsensitiveRTAInterpreter
      extended by com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter
All Implemented Interfaces:
RTAContextInterpreter, SSAContextInterpreter, CFGProvider
Direct Known Subclasses:
AstContextInsensitiveSSAContextInterpreter

public class ContextInsensitiveSSAInterpreter
extends ContextInsensitiveRTAInterpreter
implements SSAContextInterpreter

Default implementation of SSAContextInterpreter for context-insensitive analysis


Constructor Summary
ContextInsensitiveSSAInterpreter(AnalysisOptions options, ClassHierarchy cha)
           
 
Method Summary
 ControlFlowGraph getCFG(CGNode N, WarningSet warnings)
           
 DefUse getDU(CGNode node, WarningSet warnings)
           
 IR getIR(CGNode node, WarningSet warnings)
           
 int getNumberOfStatements(CGNode node, WarningSet warnings)
           
 boolean recordFactoryType(CGNode node, IClass klass)
          record that the "factory" method of a node should be interpreted to allocate a particular klass.
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.rta.ContextInsensitiveRTAInterpreter
iterateCallSites, iterateFieldsRead, iterateFieldsWritten, iterateNewSites, setWarnings, understands
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreter
iterateCallSites, iterateFieldsRead, iterateFieldsWritten, iterateNewSites, setWarnings, understands
 

Constructor Detail

ContextInsensitiveSSAInterpreter

public ContextInsensitiveSSAInterpreter(AnalysisOptions options,
                                        ClassHierarchy cha)
Method Detail

getIR

public IR getIR(CGNode node,
                WarningSet warnings)
Specified by:
getIR in interface SSAContextInterpreter
Returns:
the IR that models the method context, or null if it's an unmodelled native method

getNumberOfStatements

public int getNumberOfStatements(CGNode node,
                                 WarningSet warnings)
Specified by:
getNumberOfStatements in interface SSAContextInterpreter
Returns:
the number of the statements in the IR, or -1 if it's an unmodelled native method.

recordFactoryType

public boolean recordFactoryType(CGNode node,
                                 IClass klass)
Description copied from interface: RTAContextInterpreter
record that the "factory" method of a node should be interpreted to allocate a particular klass. TODO: this is a little ugly, is there a better place to move this?

Specified by:
recordFactoryType in interface RTAContextInterpreter
Overrides:
recordFactoryType in class ContextInsensitiveRTAInterpreter
Returns:
true iff a NEW type was recorded, false if the type was previously recorded.

getCFG

public ControlFlowGraph getCFG(CGNode N,
                               WarningSet warnings)
Specified by:
getCFG in interface CFGProvider
Parameters:
N - a call graph node
Returns:
a CFG that represents the node, or null if it's an unmodelled native method

getDU

public DefUse getDU(CGNode node,
                    WarningSet warnings)
Specified by:
getDU in interface SSAContextInterpreter