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 problempublic class BoundedTabulationSolver<T,P,F> extends TabulationSolver<T,P,F>
TabulationSolver
that gives up after a finite bound.TabulationSolver.Result, TabulationSolver.Worklist
DEBUG_LEVEL, flowFunctionMap, PERIODIC_WIPE_SOFT_CACHES, progressMonitor, summaryEdges, supergraph, verbose
Modifier | Constructor and Description |
---|---|
protected |
BoundedTabulationSolver(TabulationProblem<T,P,F> p,
int bound,
MonitorUtil.IProgressMonitor monitor) |
Modifier and Type | Method and Description |
---|---|
static <T,P,F> BoundedTabulationSolver<T,P,F> |
createBoundedTabulationSolver(TabulationProblem<T,P,F> p,
int bound,
MonitorUtil.IProgressMonitor monitor) |
int |
getNumSteps() |
protected boolean |
propagate(T s_p,
int i,
T n,
int j)
Propagate the fact
|
void |
resetBound() |
addSeed, 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
protected BoundedTabulationSolver(TabulationProblem<T,P,F> p, int bound, MonitorUtil.IProgressMonitor monitor)
public static <T,P,F> BoundedTabulationSolver<T,P,F> createBoundedTabulationSolver(TabulationProblem<T,P,F> p, int bound, MonitorUtil.IProgressMonitor monitor)
protected boolean propagate(T s_p, int i, T n, int j)
TabulationSolver
true
iff the path edge was not previously
observed.propagate
in class TabulationSolver<T,P,F>
s_p
- entry blocki
- dataflow fact on entryn
- reached blockj
- dataflow fact reachedpublic int getNumSteps()
public void resetBound()