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
Utilities for dealing with tabulation with partially balanced parentheses.
-
Nested Class Summary
Nested classes/interfaces inherited from class TabulationSolver
TabulationSolver.Result, TabulationSolver.Worklist -
Field Summary
Fields inherited from class TabulationSolver
DEBUG_LEVEL, flowFunctionMap, PERIODIC_WIPE_SOFT_CACHES, progressMonitor, summaryEdges, supergraph, verbose -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T, P, F> p, MonitorUtil.IProgressMonitor monitor) -
Method Summary
Modifier and TypeMethodDescriptionvoidRestart tabulation from a particular path edge.static <T,P, F> PartiallyBalancedTabulationSolver <T, P, F> createPartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T, P, F> p, MonitorUtil.IProgressMonitor monitor) protected voidnewUnbalancedExplodedReturnEdge(T s_p, int i, T n, int j) A path edge <s_p, i> -> <n, j> was propagated, and <s_p, i> was an unbalanced seed.protected booleanPropagate the fact <s_p,i> -> <n, j> has arisen as a path edge.Methods inherited from class TabulationSolver
addToWorkList, computeBinaryFlow, computeFlow, computeInverseFlow, findOrCreateCallFlowEdges, findOrCreateLocalPathEdges, findOrCreateLocalSummaryEdges, getCurPathEdge, getCurSummaryEdge, getInversePathEdges, getLocalPathEdges, getProblem, getProgressMonitor, getResult, getSeeds, getSummarySources, getSupergraph, initialize, make, makeWorklist, newCallExplodedEdge, newNormalExplodedEdge, newSummaryEdge, performVerboseAction, popFromWorkList, processCall, processExit, processParticularCallee, recordCall, solve, tendToSoftCaches
-
Constructor Details
-
PartiallyBalancedTabulationSolver
protected PartiallyBalancedTabulationSolver(PartiallyBalancedTabulationProblem<T, P, F> p, MonitorUtil.IProgressMonitor monitor)
-
-
Method Details
-
createPartiallyBalancedTabulationSolver
public static <T,P, PartiallyBalancedTabulationSolver<T,F> P, createPartiallyBalancedTabulationSolverF> (PartiallyBalancedTabulationProblem<T, P, F> p, MonitorUtil.IProgressMonitor monitor) -
propagate
Description copied from class:TabulationSolverPropagate the fact <s_p,i> -> <n, j> has arisen as a path edge. Returns <code>true</code> iff the path edge was not previously observed.- Overrides:
propagatein classTabulationSolver<T,P, F> - Parameters:
s_p- entry blocki- dataflow fact on entryn- reached blockj- dataflow fact reached
-
addSeed
Description copied from class:TabulationSolverRestart tabulation from a particular path edge. Use with care.- Overrides:
addSeedin classTabulationSolver<T,P, F>
-
newUnbalancedExplodedReturnEdge
-