Class Slicer.SliceProblem
java.lang.Object
com.ibm.wala.ipa.slicer.Slicer.SliceProblem
- All Implemented Interfaces:
PartiallyBalancedTabulationProblem<Statement, PDG<?>, Object>, TabulationProblem<Statement, PDG<?>, Object>
- Enclosing class:
Slicer
public static class Slicer.SliceProblem
extends Object
implements PartiallyBalancedTabulationProblem<Statement, PDG<?>, Object>
Tabulation problem representing slicing
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetFakeEntry(Statement node) If n is reached by a partially balanced parenthesis, what is the entry node we should use as the root of thePathEdgeto n? Note that the result must in fact be an entry node of the procedure containing n.Special case: if supportsMerge(), then the problem is not really IFDS anymore.ISupergraph<Statement, PDG<?>> Define the set of path edges to start propagation with.
-
Constructor Details
-
SliceProblem
-
-
Method Details
-
getDomain
- Specified by:
getDomainin interfaceTabulationProblem<Statement, PDG<?>, Object>- See Also:
-
getFunctionMap
- Specified by:
getFunctionMapin interfacePartiallyBalancedTabulationProblem<Statement, PDG<?>, Object>- Specified by:
getFunctionMapin interfaceTabulationProblem<Statement, PDG<?>, Object>- See Also:
-
getMergeFunction
Description copied from interface:TabulationProblemSpecial case: if supportsMerge(), then the problem is not really IFDS anymore. (TODO: rename it?). Instead, we perform a merge operation before propagating at every program point. This way, we can implement standard interprocedural dataflow and ESP-style property simulation, and various other things.- Specified by:
getMergeFunctionin interfaceTabulationProblem<Statement, PDG<?>, Object>- Returns:
- the merge function, or null if !supportsMerge()
- See Also:
-
getSupergraph
- Specified by:
getSupergraphin interfaceTabulationProblem<Statement, PDG<?>, Object>- See Also:
-
initialSeeds
Description copied from interface:TabulationProblemDefine the set of path edges to start propagation with.- Specified by:
initialSeedsin interfaceTabulationProblem<Statement, PDG<?>, Object>
-
getFakeEntry
Description copied from interface:PartiallyBalancedTabulationProblemIf n is reached by a partially balanced parenthesis, what is the entry node we should use as the root of thePathEdgeto n? Note that the result must in fact be an entry node of the procedure containing n.- Specified by:
getFakeEntryin interfacePartiallyBalancedTabulationProblem<Statement, PDG<?>, Object>
-