Packages

c

tip.analysis

SimpleSignAnalysis

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.

Linear Supertypes
FlowSensitiveAnalysis, Analysis[Any], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SimpleSignAnalysis
  2. FlowSensitiveAnalysis
  3. Analysis
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SimpleSignAnalysis(cfg: ProgramCfg)(implicit declData: DeclarationData)

Value Members

  1. def analyze(): Element

    The basic Kleene fixpoint solver.

    The basic Kleene fixpoint solver.

    Definition Classes
    SimpleSignAnalysisAnalysis
  2. val declaredVars: Set[ADeclaration]

    Set of declared variables, used by statelattice.

  3. val domain: Set[CfgNode]

    The domain of the program lattice.

  4. def eval(exp: AExpr, env: Element)(implicit declData: DeclarationData): lattices.SignLattice.Element

    Abstract evaluation of expressions.

  5. 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

  6. 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

  7. 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

  8. def join(n: CfgNode, o: Element): Element

    Computes the least upper bound of the incoming elements.

  9. val lattice: MapLattice[CfgNode, statelattice.type]

    The program lattice.

  10. def localTransfer(n: CfgNode, s: Element): Element

    Transfer functions for the different kinds of statements.

  11. val stateAfterNode: Boolean
    Definition Classes
    FlowSensitiveAnalysis
  12. val statelattice: MapLattice[ADeclaration, SignLattice.type]

    The lattice of abstract states.

  13. val valuelattice: SignLattice.type

    The lattice of abstract values.