Package com.ibm.wala.dataflow.IFDS
Class PartiallyBalancedTabulationSolver<T,P,F>
- java.lang.Object
-
- com.ibm.wala.dataflow.IFDS.TabulationSolver<T,P,F>
-
- com.ibm.wala.dataflow.IFDS.PartiallyBalancedTabulationSolver<T,P,F>
-
- Type Parameters:
T
- type of node in the supergraphP
- type of a procedure (like a box in an RSM)F
- type of factoids propagated when solving this problem
- Direct Known Subclasses:
BoundedPartiallyBalancedSolver
public class PartiallyBalancedTabulationSolver<T,P,F> extends TabulationSolver<T,P,F>
Utilities for dealing with tabulation with partially balanced parentheses.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.ibm.wala.dataflow.IFDS.TabulationSolver
TabulationSolver.Result, TabulationSolver.Worklist
-
-
Field Summary
-
Fields inherited from class com.ibm.wala.dataflow.IFDS.TabulationSolver
DEBUG_LEVEL, flowFunctionMap, PERIODIC_WIPE_SOFT_CACHES, progressMonitor, summaryEdges, supergraph, verbose
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T,P,F> p, MonitorUtil.IProgressMonitor monitor)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSeed(PathEdge<T> seed)
Restart tabulation from a particular path edge.static <T,P,F>
PartiallyBalancedTabulationSolver<T,P,F>createPartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T,P,F> p, MonitorUtil.IProgressMonitor monitor)
protected boolean
propagate(T s_p, int i, T n, int j)
Propagate the fact-> has arisen as a path edge. -
Methods inherited from class com.ibm.wala.dataflow.IFDS.TabulationSolver
addToWorkList, computeBinaryFlow, computeFlow, computeInverseFlow, findOrCreateCallFlowEdges, findOrCreateLocalPathEdges, findOrCreateLocalSummaryEdges, getCurPathEdge, getCurSummaryEdge, getInversePathEdges, getLocalPathEdges, getProblem, getProgressMonitor, getResult, getSeeds, getSummarySources, getSupergraph, initialize, make, makeWorklist, performVerboseAction, popFromWorkList, processCall, processExit, processParticularCallee, recordCall, solve, tendToSoftCaches
-
-
-
-
Constructor Detail
-
PartiallyBalancedTabulationSolver
protected PartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T,P,F> p, MonitorUtil.IProgressMonitor monitor)
-
-
Method Detail
-
createPartiallyBalancedTabulationSolver
public static <T,P,F> PartiallyBalancedTabulationSolver<T,P,F> createPartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T,P,F> p, MonitorUtil.IProgressMonitor monitor)
-
propagate
protected boolean propagate(T s_p, int i, T n, int j)
Description copied from class:TabulationSolver
Propagate the fact-> has arisen as a path edge. Returns true
iff the path edge was not previously observed.- Overrides:
propagate
in classTabulationSolver<T,P,F>
- Parameters:
s_p
- entry blocki
- dataflow fact on entryn
- reached blockj
- dataflow fact reached
-
addSeed
public void addSeed(PathEdge<T> seed)
Description copied from class:TabulationSolver
Restart tabulation from a particular path edge. Use with care.- Overrides:
addSeed
in classTabulationSolver<T,P,F>
-
-