abstract class InterprocValueAnalysisWorklistSolverWithReachability[L <: LatticeWithOps] extends LiftedValueAnalysis[InterproceduralProgramCfg] with LiftedValueAnalysisMisc with InterprocValueAnalysisFunctions with WorklistFixpointSolverWithReachability[CfgNode] with InterproceduralForwardDependencies
Interprocedural value analysis that uses tip.solvers.WorklistFixpointSolverWithReachability, with the entry of the main function as the only start node.
- Alphabetic
- By Inheritance
- InterprocValueAnalysisWorklistSolverWithReachability
- InterproceduralForwardDependencies
- WorklistFixpointSolverWithReachability
- WorklistFixpointSolver
- ListSetWorklist
- Worklist
- InterprocValueAnalysisFunctions
- InterprocValueAnalysisMisc
- MapLiftLatticeSolver
- LiftedValueAnalysisMisc
- LiftedValueAnalysis
- ValueAnalysisMisc
- MapLatticeSolver
- Dependencies
- LatticeSolver
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new InterprocValueAnalysisWorklistSolverWithReachability(cfg: InterproceduralProgramCfg, valuelattice: L)(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.
- Definition Classes
- WorklistFixpointSolverWithReachability → LatticeSolver
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
cfg: InterproceduralProgramCfg
- 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): L.Element
Default implementation of eval.
Default implementation of eval.
- Definition Classes
- ValueAnalysisMisc
-
def
evalArgs(formalParams: Seq[ADeclaration], actualParams: Seq[AExpr], state: Element): Element
Abstract evaluation of function arguments.
Abstract evaluation of function arguments.
- Definition Classes
- InterprocValueAnalysisMisc
-
val
first: Set[CfgNode]
Initialize worklist with the program entry point.
Initialize worklist with the program entry point.
-
def
funsub(n: CfgNode, x: Element): Element
Overrides
funsub
from tip.solvers.MapLatticeSolver adding support for function calls and returns.Overrides
funsub
from tip.solvers.MapLatticeSolver adding support for function calls and returns.- n
the current location in the map domain
- x
the current lattice element for all locations
- returns
the output sublattice element
- Definition Classes
- InterprocValueAnalysisFunctions → 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]
Like ForwardDependencies.indep but returning an empty set for after-call nodes.
Like ForwardDependencies.indep but returning an empty set for after-call nodes.
- n
an element from the worklist
- returns
the elements that the given element depends on
- Definition Classes
- InterproceduralForwardDependencies → Dependencies
-
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]
Like ForwardDependencies.outdep but with call and return edges.
Like ForwardDependencies.outdep but with call and return edges. A call node has an outdep to its after-call node.
- n
an element from the worklist
- returns
the elements that depend on the given element
- Definition Classes
- InterproceduralForwardDependencies → Dependencies
-
def
process(n: CfgNode): Unit
Called by run to process an item from the worklist.
Called by run to process an item from the worklist.
- Definition Classes
- WorklistFixpointSolver → Worklist
-
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: L
The lattice of abstract values.
The lattice of abstract values.
- Definition Classes
- InterprocValueAnalysisWorklistSolverWithReachability → 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