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
-
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 thePathEdge
to 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:
getDomain
in interfaceTabulationProblem<Statement,
PDG<?>, Object> - See Also:
-
getFunctionMap
- Specified by:
getFunctionMap
in interfacePartiallyBalancedTabulationProblem<Statement,
PDG<?>, Object> - Specified by:
getFunctionMap
in interfaceTabulationProblem<Statement,
PDG<?>, Object> - See Also:
-
getMergeFunction
Description copied from interface:TabulationProblem
Special 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:
getMergeFunction
in interfaceTabulationProblem<Statement,
PDG<?>, Object> - Returns:
- the merge function, or null if !supportsMerge()
- See Also:
-
getSupergraph
- Specified by:
getSupergraph
in interfaceTabulationProblem<Statement,
PDG<?>, Object> - See Also:
-
initialSeeds
Description copied from interface:TabulationProblem
Define the set of path edges to start propagation with.- Specified by:
initialSeeds
in interfaceTabulationProblem<Statement,
PDG<?>, Object>
-
getFakeEntry
Description copied from interface:PartiallyBalancedTabulationProblem
If n is reached by a partially balanced parenthesis, what is the entry node we should use as the root of thePathEdge
to n? Note that the result must in fact be an entry node of the procedure containing n.- Specified by:
getFakeEntry
in interfacePartiallyBalancedTabulationProblem<Statement,
PDG<?>, Object>
-