tip.analysis.ConstantPropagationAnalysis.Intraprocedural
WorklistSolverWithReachabilityAndPropagation
class WorklistSolverWithReachabilityAndPropagation extends IntraprocValueAnalysisWorklistSolverWithReachabilityAndPropagation[ConstantPropagationLattice.type]
Intraprocedural analysis that uses the worklist solver with reachability and propagation-style.
- Alphabetic
- By Inheritance
- WorklistSolverWithReachabilityAndPropagation
- IntraprocValueAnalysisWorklistSolverWithReachabilityAndPropagation
- ForwardDependencies
- WorklistFixpointPropagationSolver
- WorklistFixpointPropagationFunctions
- WorklistFixpointSolverWithReachability
- MapLiftLatticeSolver
- WorklistFixpointSolver
- ListSetWorklist
- Worklist
- LiftedValueAnalysisMisc
- LiftedValueAnalysis
- ValueAnalysisMisc
- MapLatticeSolver
- Dependencies
- LatticeSolver
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new WorklistSolverWithReachabilityAndPropagation(cfg: IntraproceduralProgramCfg)(implicit declData: DeclarationData)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
add(ns: Set[CfgNode]): Unit
Adds a set of items to the worklist.
Adds a set of items to the worklist.
- Definition Classes
- ListSetWorklist → Worklist
-
def
add(n: CfgNode): Unit
Adds an item to the worklist.
Adds an item to the worklist.
- Definition Classes
- ListSetWorklist → Worklist
-
def
analyze(): Element
The analyze function.
The analyze function.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
cfg: IntraproceduralProgramCfg
- Definition Classes
- LiftedValueAnalysis → ValueAnalysisMisc
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
- implicit val declData: DeclarationData
-
val
declaredVars: Set[ADeclaration]
Set of declared variables, used by
statelattice
.Set of declared variables, used by
statelattice
.- Definition Classes
- ValueAnalysisMisc
-
val
domain: Set[CfgNode]
- Definition Classes
- LiftedValueAnalysis
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
eval(exp: AExpr, env: Element)(implicit declData: DeclarationData): lattices.ConstantPropagationLattice.Element
Default implementation of eval.
Default implementation of eval.
- Definition Classes
- ValueAnalysisMisc
-
val
first: Set[CfgNode]
The worklist is initialized with all function entry nodes.
The worklist is initialized with all function entry nodes.
- Definition Classes
- LiftedValueAnalysis
-
def
funsub(n: CfgNode, x: Element): Element
Overrides
funsub
from tip.solvers.MapLatticeSolver, treating function entry nodes as reachable.Overrides
funsub
from tip.solvers.MapLatticeSolver, treating function entry nodes as reachable.- n
the current location in the map domain
- x
the current lattice element for all locations
- returns
the output sublattice element
- Definition Classes
- LiftedValueAnalysis → MapLatticeSolver
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
indep(n: CfgNode): Set[CfgNode]
Incoming dependencies.
Incoming dependencies. Used when computing the join from predecessors.
- n
an element from the worklist
- returns
the elements that the given element depends on
- Definition Classes
- ForwardDependencies → Dependencies
-
def
init: Element
The initial lattice element at the start locations.
The initial lattice element at the start locations. Default: lift(bottom).
- Definition Classes
- WorklistFixpointPropagationSolver → WorklistFixpointPropagationFunctions
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
join(n: CfgNode, o: Element): Element
Computes the least upper bound of the incoming elements.
Computes the least upper bound of the incoming elements.
- Definition Classes
- MapLatticeSolver
-
val
lattice: MapLattice[CfgNode, liftedstatelattice.type]
The analysis lattice.
The analysis lattice.
- Definition Classes
- LiftedValueAnalysis → MapLatticeSolver → LatticeSolver
-
val
liftedstatelattice: LiftLattice[statelattice.type]
Lifted state lattice, with new bottom element representing "unreachable".
Lifted state lattice, with new bottom element representing "unreachable".
- Definition Classes
- LiftedValueAnalysis
-
def
localTransfer(n: CfgNode, s: Element): Element
Transfer function for state lattice elements.
Transfer function for state lattice elements.
- Definition Classes
- ValueAnalysisMisc
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
outdep(n: CfgNode): Set[CfgNode]
Outgoing dependencies.
Outgoing dependencies. Used when propagating dataflow to successors.
- n
an element from the worklist
- returns
the elements that depend on the given element
- Definition Classes
- ForwardDependencies → Dependencies
-
def
process(n: CfgNode): Unit
This method overrides the one from WorklistFixpointSolver.
This method overrides the one from WorklistFixpointSolver. Called by the worklist solver when a node is visited.
- Definition Classes
- WorklistFixpointPropagationSolver → WorklistFixpointSolver → Worklist
-
def
propagate(y: Element, m: CfgNode): Unit
Propagates lattice element y to node m.
Propagates lattice element y to node m.
- Definition Classes
- WorklistFixpointPropagationFunctions
-
def
run(first: Set[CfgNode]): Unit
Iterates until there is no more work to do.
Iterates until there is no more work to do.
- first
the initial contents of the worklist
- Definition Classes
- ListSetWorklist → Worklist
-
val
stateAfterNode: Boolean
- Definition Classes
- FlowSensitiveAnalysis
-
val
statelattice: MapLattice[ADeclaration, valuelattice.type]
The lattice of abstract states.
The lattice of abstract states.
- Definition Classes
- ValueAnalysisMisc
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transfer(n: CfgNode, s: Element): Element
The transfer function.
The transfer function.
- Definition Classes
- MapLiftLatticeSolver → MapLatticeSolver
-
def
transferUnlifted(n: CfgNode, s: Element): Element
Transfer function for state lattice elements.
Transfer function for state lattice elements. (Same as
localTransfer
for basic analyses with lifted state lattice.)- Definition Classes
- LiftedValueAnalysisMisc
-
val
valuelattice: ConstantPropagationLattice.type
The lattice of abstract values.
The lattice of abstract values.
- Definition Classes
- IntraprocValueAnalysisWorklistSolverWithReachabilityAndPropagation → ValueAnalysisMisc
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
val
x: Element
The current lattice element.
The current lattice element.
- Definition Classes
- WorklistFixpointSolver
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated