class Phase2 extends FlowSensitiveAnalysis with WorklistFixpointPropagationFunctions[(CfgNode, Either[D, Lambda])]
Phase 2 of the IDE algorithm. Performs a forward dataflow analysis using the decomposed lattice and the micro-transformers. The original RHS version of IDE uses jump functions for all nodes, not only at exits, but the analysis result and complexity is the same.
- Alphabetic
- By Inheritance
- Phase2
- WorklistFixpointPropagationFunctions
- ListSetWorklist
- Worklist
- FlowSensitiveAnalysis
- Analysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new Phase2(cfg: InterproceduralProgramCfg, phase1: Phase1)
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, Either[D, Lambda])]): 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, Either[D, Lambda])): Unit
Adds an item to the worklist.
Adds an item to the worklist.
- Definition Classes
- ListSetWorklist → Worklist
-
def
analyze(): Element
- Definition Classes
- WorklistFixpointPropagationFunctions
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val cfg: InterproceduralProgramCfg
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
first: Set[(CfgNode, IDESolver.DL)]
The start locations.
The start locations.
- Definition Classes
- Phase2 → WorklistFixpointPropagationFunctions
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
val
init: L.Element
The initial lattice element at the start locations.
The initial lattice element at the start locations.
- Definition Classes
- Phase2 → WorklistFixpointPropagationFunctions
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
lattice: MapLattice[(CfgNode, IDESolver.DL), IDESolver.valuelattice.type]
The analysis lattice.
The analysis lattice.
- Definition Classes
- Phase2 → WorklistFixpointPropagationFunctions
-
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 phase1: Phase1
-
def
process(nd: (CfgNode, IDESolver.DL)): Unit
Called by run to process an item from the worklist.
-
def
propagate(y: L.Element, m: (CfgNode, Either[D, Lambda])): Unit
Propagates lattice element y to node m.
Propagates lattice element y to node m.
- Definition Classes
- WorklistFixpointPropagationFunctions
-
def
restructure(y: Element): Element
Restructures the analysis output to match
restructuredlattice
. - val restructuredlattice: MapLattice[CfgNode, MapLattice[D, IDESolver.valuelattice.type]]
-
def
run(first: Set[(CfgNode, Either[D, Lambda])]): 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
-
lazy val
summaries: Map[AFunDeclaration, Map[IDESolver.DL, Map[IDESolver.DL, EdgeFunction]]]
Function summaries from phase 1.
Function summaries from phase 1. Built when first invoked.
-
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( ... )
-
var
x: Element
The current lattice element.
The current lattice element.
- Definition Classes
- Phase2 → WorklistFixpointPropagationFunctions
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated