Packages

c

tip.analysis

FunctionalValueAnalysis

abstract class FunctionalValueAnalysis[L <: LatticeWithOps] extends ContextSensitiveValueAnalysis[FunctionalContext] with FunctionalFunctions

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FunctionalValueAnalysis
  2. FunctionalFunctions
  3. ContextSensitiveValueAnalysis
  4. CallContextFunctions
  5. InterprocValueAnalysisMisc
  6. ValueAnalysisMisc
  7. WorklistFixpointPropagationSolver
  8. WorklistFixpointPropagationFunctions
  9. WorklistFixpointSolverWithReachability
  10. WorklistFixpointSolver
  11. ListSetWorklist
  12. Worklist
  13. MapLiftLatticeSolver
  14. MapLatticeSolver
  15. LatticeSolver
  16. ContextSensitiveForwardDependencies
  17. Dependencies
  18. FlowSensitiveAnalysis
  19. Analysis
  20. AnyRef
  21. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FunctionalValueAnalysis(cfg: InterproceduralProgramCfg, valuelattice: L)(implicit declData: DeclarationData)

Type Members

  1. type statelatticetype = Lattice

    The type for the abstract state lattice.

    The type for the abstract state lattice.

    Definition Classes
    CallContextFunctions

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def add(ns: Set[(FunctionalContext, CfgNode)]): Unit

    Adds a set of items to the worklist.

    Adds a set of items to the worklist.

    Definition Classes
    ListSetWorklistWorklist
  5. def add(n: (FunctionalContext, CfgNode)): Unit

    Adds an item to the worklist.

    Adds an item to the worklist.

    Definition Classes
    ListSetWorklistWorklist
  6. def analyze(): Element

    The analyze function.

  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. val cfg: InterproceduralProgramCfg
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  10. implicit val declData: DeclarationData
  11. val declaredVars: Set[ADeclaration]

    Set of declared variables, used by statelattice.

    Set of declared variables, used by statelattice.

    Definition Classes
    ValueAnalysisMisc
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def eval(exp: AExpr, env: Element)(implicit declData: DeclarationData): L.Element

    Default implementation of eval.

    Default implementation of eval.

    Definition Classes
    ValueAnalysisMisc
  15. def evalArgs(formalParams: Seq[ADeclaration], actualParams: Seq[AExpr], state: Element): Element

    Abstract evaluation of function arguments.

    Abstract evaluation of function arguments.

    Definition Classes
    InterprocValueAnalysisMisc
  16. val first: Set[(FunctionalContext, CfgNode)]

    Worklist start locations.

  17. def funsub(n: (FunctionalContext, 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

    Definition Classes
    MapLatticeSolver
  18. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  20. def indep(n: (FunctionalContext, CfgNode)): Set[(FunctionalContext, CfgNode)]

    (Not implemented as it is not used by any existing analysis.)

    (Not implemented as it is not used by any existing analysis.)

    n

    an element from the worklist

    returns

    the elements that the given element depends on

    Definition Classes
    ContextSensitiveForwardDependenciesDependencies
  21. def init: Lift

    The initial lattice element at the start locations is "reachable".

    The initial lattice element at the start locations is "reachable".

    Definition Classes
    ContextSensitiveValueAnalysisWorklistFixpointPropagationSolverWorklistFixpointPropagationFunctions
  22. def initialContext: FunctionalContext

    Creates a context as the empty abstract state.

    Creates a context as the empty abstract state.

    Definition Classes
    FunctionalFunctionsCallContextFunctions
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. def join(n: (FunctionalContext, 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
  25. val lattice: MapLattice[(FunctionalContext, CfgNode), liftedstatelattice.type]

    The analysis lattice.

  26. 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
    ContextSensitiveValueAnalysisInterprocValueAnalysisMisc
  27. def localTransfer(n: CfgNode, s: Element): Element

    Transfer function for state lattice elements.

    Transfer function for state lattice elements.

    Definition Classes
    ValueAnalysisMisc
  28. def makeCallContext(c: FunctionalContext, n: CfgCallNode, x: Element, f: CfgFunEntryNode): FunctionalContext

    Creates a context as the singleton list consisting of the call node (and ignoring the other arguments).

    Creates a context as the singleton list consisting of the call node (and ignoring the other arguments).

    c

    the caller context

    n

    the current call node

    x

    the callee entry abstract state

    f

    the callee function

    returns

    the context for the callee

    Definition Classes
    FunctionalFunctionsCallContextFunctions
  29. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  30. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  31. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  32. def outdep(n: (FunctionalContext, CfgNode)): Set[(FunctionalContext, CfgNode)]

    Like InterproceduralForwardDependencies.outdep but returning an empty set for call nodes and function exit nodes, and using the same context as the given pair.

    Like InterproceduralForwardDependencies.outdep but returning an empty set for call nodes and function exit nodes, and using the same context as the given pair.

    n

    an element from the worklist

    returns

    the elements that depend on the given element

    Definition Classes
    ContextSensitiveForwardDependenciesDependencies
  33. def process(n: (FunctionalContext, 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
    WorklistFixpointPropagationSolverWorklistFixpointSolverWorklist
  34. def propagate(y: Element, m: (FunctionalContext, CfgNode)): Unit

    Propagates lattice element y to node m.

    Propagates lattice element y to node m.

    Definition Classes
    WorklistFixpointPropagationFunctions
  35. val returnEdges: HashMap[(FunctionalContext, CfgFunExitNode), Set[(FunctionalContext, CfgAfterCallNode)]] with MultiMap[(FunctionalContext, CfgFunExitNode), (FunctionalContext, CfgAfterCallNode)]

    Collect (reverse) call edges, such that we don't have to search through the global lattice element to find the relevant call contexts.

    Collect (reverse) call edges, such that we don't have to search through the global lattice element to find the relevant call contexts.

    Definition Classes
    ContextSensitiveValueAnalysis
  36. def run(first: Set[(FunctionalContext, 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
    ListSetWorklistWorklist
  37. val stateAfterNode: Boolean
    Definition Classes
    FlowSensitiveAnalysis
  38. val statelattice: MapLattice[ADeclaration, valuelattice.type]

    The lattice of abstract states.

    The lattice of abstract states.

    Definition Classes
    ValueAnalysisMisc
  39. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  40. def toString(): String
    Definition Classes
    AnyRef → Any
  41. def transfer(n: (FunctionalContext, CfgNode), s: Element): Element

    The transfer function.

    The transfer function.

    Definition Classes
    MapLiftLatticeSolverMapLatticeSolver
  42. def transferUnlifted(n: (FunctionalContext, CfgNode), s: Element): Element

    Transfer function for state lattice elements.

    Transfer function for state lattice elements.

    Definition Classes
    ContextSensitiveValueAnalysisMapLiftLatticeSolver
  43. val valuelattice: L

    The lattice of abstract values.

    The lattice of abstract values.

    Definition Classes
    FunctionalValueAnalysisValueAnalysisMisc
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  46. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. val x: Element

    The current lattice element.

    The current lattice element.

    Definition Classes
    WorklistFixpointSolver

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Ungrouped