N
- The type of nodes in the interprocedural control-flow graph. Typically Unit
.D
- The type of data-flow facts to be computed by the tabulation problem.M
- The type of objects used to represent methods. Typically SootMethod
.I
- The type of inter-procedural control-flow graph being used.public interface IFDSTabulationProblem<N,D,M,I extends InterproceduralCFG<N,M>> extends SolverConfiguration
IFDSSolver
as described
by the Reps, Horwitz, Sagiv 1995 (RHS95) paper.Modifier and Type | Method and Description |
---|---|
FlowFunctions<N,D,M> |
flowFunctions()
Returns a set of flow functions.
|
java.util.Map<N,java.util.Set<D>> |
initialSeeds()
Returns initial seeds to be used for the analysis.
|
I |
interproceduralCFG()
Returns the interprocedural control-flow graph which this problem is computed over.
|
D |
zeroValue()
This must be a data-flow fact of type
D , but must not
be part of the domain of data-flow facts. |
autoAddZero, computeValues, followReturnsPastSeeds, numThreads, recordEdges
FlowFunctions<N,D,M> flowFunctions()
I interproceduralCFG()
java.util.Map<N,java.util.Set<D>> initialSeeds()
D zeroValue()
D
, but must not
be part of the domain of data-flow facts. Typically this will be a
singleton object of type D
that is used for nothing else.
It must holds that this object does not equals any object
within the domain.
NOTE: this method could be called many times. Implementations of this
interface should therefore cache the return value!