public static class Slicer.SliceProblem extends Object implements PartiallyBalancedTabulationProblem<Statement,PDG,Object>
Constructor and Description |
---|
SliceProblem(Collection<Statement> roots,
ISDG sdg,
boolean backward) |
Modifier and Type | Method and Description |
---|---|
TabulationDomain<Object,Statement> |
getDomain() |
Statement |
getFakeEntry(Statement node)
If n is reached by a partially balanced parenthesis, what is the entry node we should use as the root of the
PathEdge
to n? Note that the result must in fact be an entry node of the procedure containing n. |
IPartiallyBalancedFlowFunctions<Statement> |
getFunctionMap() |
IMergeFunction |
getMergeFunction()
Special case: if supportsMerge(), then the problem is not really IFDS anymore.
|
ISupergraph<Statement,PDG> |
getSupergraph() |
Collection<PathEdge<Statement>> |
initialSeeds()
Define the set of path edges to start propagation with.
|
public SliceProblem(Collection<Statement> roots, ISDG sdg, boolean backward)
public TabulationDomain<Object,Statement> getDomain()
getDomain
in interface TabulationProblem<Statement,PDG,Object>
public IPartiallyBalancedFlowFunctions<Statement> getFunctionMap()
getFunctionMap
in interface PartiallyBalancedTabulationProblem<Statement,PDG,Object>
getFunctionMap
in interface TabulationProblem<Statement,PDG,Object>
public IMergeFunction getMergeFunction()
TabulationProblem
getMergeFunction
in interface TabulationProblem<Statement,PDG,Object>
public ISupergraph<Statement,PDG> getSupergraph()
getSupergraph
in interface TabulationProblem<Statement,PDG,Object>
public Collection<PathEdge<Statement>> initialSeeds()
TabulationProblem
initialSeeds
in interface TabulationProblem<Statement,PDG,Object>
public Statement getFakeEntry(Statement node)
PartiallyBalancedTabulationProblem
PathEdge
to n? Note that the result must in fact be an entry node of the procedure containing n.getFakeEntry
in interface PartiallyBalancedTabulationProblem<Statement,PDG,Object>