class SimpleSignAnalysis extends FlowSensitiveAnalysis
Simple intra-procedural sign analysis.
This is a specialized version of SignAnalysis.Intraprocedural.SimpleSolver
where most of the involved traits, classes, methods, and fields have been inlined.
- Alphabetic
- By Inheritance
- SimpleSignAnalysis
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new SimpleSignAnalysis(cfg: ProgramCfg)(implicit declData: DeclarationData)
Value Members
-
def
analyze(): Element
The basic Kleene fixpoint solver.
The basic Kleene fixpoint solver.
- Definition Classes
- SimpleSignAnalysis → Analysis
-
val
declaredVars: Set[ADeclaration]
Set of declared variables, used by
statelattice
. -
val
domain: Set[CfgNode]
The domain of the program lattice.
-
def
eval(exp: AExpr, env: Element)(implicit declData: DeclarationData): lattices.SignLattice.Element
Abstract evaluation of expressions.
-
def
fun(x: Element): Element
The function for which the least fixpoint is to be computed.
The function for which the least fixpoint is to be computed. Applies the sublattice constraint function pointwise to each entry.
- x
the input lattice element
- returns
the output lattice element
-
def
funsub(n: CfgNode, x: Element): Element
The constraint function for individual elements in the map domain.
The constraint function for individual elements in the map domain. First computes the join of the incoming elements and then applies the transfer function.
- n
the current location in the map domain
- x
the current lattice element for all locations
- returns
the output sublattice element
-
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
-
def
join(n: CfgNode, o: Element): Element
Computes the least upper bound of the incoming elements.
-
val
lattice: MapLattice[CfgNode, statelattice.type]
The program lattice.
-
def
localTransfer(n: CfgNode, s: Element): Element
Transfer functions for the different kinds of statements.
-
val
stateAfterNode: Boolean
- Definition Classes
- FlowSensitiveAnalysis
-
val
statelattice: MapLattice[ADeclaration, SignLattice.type]
The lattice of abstract states.
-
val
valuelattice: SignLattice.type
The lattice of abstract values.