abstract class LiftedValueAnalysis[P <: ProgramCfg] extends FlowSensitiveAnalysis with MapLatticeSolver[CfgNode] with ValueAnalysisMisc
Base class for value analysis with lifted lattice, where the extra bottom element represents "unreachable".
- Alphabetic
- By Inheritance
- LiftedValueAnalysis
- ValueAnalysisMisc
- MapLatticeSolver
- Dependencies
- LatticeSolver
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new LiftedValueAnalysis(cfg: P, stateAfterNode: Boolean)(implicit declData: DeclarationData)
Abstract Value Members
-
abstract
def
analyze(): Element
The analyze function.
The analyze function.
- Definition Classes
- LatticeSolver
-
abstract
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
- Dependencies
-
abstract
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
- Dependencies
-
abstract
def
transfer(n: CfgNode, s: Element): Element
The transfer function.
The transfer function.
- Definition Classes
- MapLatticeSolver
-
abstract
val
valuelattice: LatticeWithOps
The lattice of abstract values.
The lattice of abstract values.
- Definition Classes
- ValueAnalysisMisc
Concrete 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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
cfg: P
- Definition Classes
- LiftedValueAnalysis → ValueAnalysisMisc
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
implicit
val
declData: DeclarationData
- Definition Classes
- LiftedValueAnalysis → ValueAnalysisMisc
-
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]
-
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.LatticeWithOps.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.
-
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()
-
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".
-
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()
-
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
-
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( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated