Packages

p

org.opalj.tac.fpcf

analyses

package analyses

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package cg
  2. package escape
  3. package fieldassignability
  4. package pointsto
  5. package purity

Type Members

  1. trait APIBasedAnalysis extends FPCFAnalysis with ContextualAnalysis

    A trait for analyses that model the result of the invocation of a specific apiMethod.

    A trait for analyses that model the result of the invocation of a specific apiMethod.

    Each time a new caller of the apiMethod* is found in the Callers property, handleNewCaller* gets called.

    Note

    When handleNewCaller gets invoked, there is no guarantee that the caller's three-address code (org.opalj.tac.fpcf.properties.TACAI) is present in the property store, nor that it is final. If this is required, use the TACAIBasedAPIBasedAnalysis sub-trait.

  2. abstract class AbstractIFDSAnalysis[IFDSFact <: AbstractIFDSFact] extends FPCFAnalysis

    A framework for IFDS analyses.

    A framework for IFDS analyses.

    IFDSFact

    The type of flow facts the concrete analysis wants to track

  3. trait AbstractIFDSFact extends AnyRef

    The super type of all IFDS facts.

  4. trait AbstractIFDSNullFact extends AbstractIFDSFact

    The super type of all null facts.

  5. case class AllocationSiteDescription(cf: String, name: String, desc: String, instantiatedType: String, arrayComponentTypes: Seq[String]) extends EntityDescription with Product with Serializable
  6. case class ArrayDescription(array: EntityDescription, arrayType: String) extends EntityDescription with Product with Serializable
  7. case class ConfiguredMethodData(cf: String, name: String, desc: String, pointsTo: Option[Array[PointsToRelation]], methodInvocations: Option[Array[MethodDescription]]) extends Product with Serializable
  8. case class ConfiguredMethods(nativeMethods: Array[ConfiguredMethodData]) extends Product with Serializable
  9. final case class DefinitionSiteWithoutPutField(method: Method, pc: Int, putFieldPC: Int) extends DefinitionSiteLike with Product with Serializable

    Represents a definition site of an object that is stored into a field (that is being analyzed for locality) where the field write use-site is removed from the set of use-sites.

    Represents a definition site of an object that is stored into a field (that is being analyzed for locality) where the field write use-site is removed from the set of use-sites. It acts as an entity for the escape analysis (we are interested whether the objects stored into a field are local, i.e. doe not escape). Here, the org.opalj.tac.PutField would let the object escape.

  10. sealed trait EntityDescription extends AnyRef
  11. trait FieldImmutabilityAnalysisScheduler extends FPCFAnalysisScheduler
  12. class FieldLocalityAnalysis extends FPCFAnalysis

    Determines whether the lifetime of a reference type field is the same as that of its owning instance.

    Determines whether the lifetime of a reference type field is the same as that of its owning instance. Base type fields are treated as local for convenience, but this should never be required anyway.

  13. sealed trait FieldLocalityAnalysisScheduler extends FPCFAnalysisScheduler
  14. class FieldLocalityState extends AnyRef
  15. abstract class IFDSAnalysis[IFDSFact <: AbstractIFDSFact] extends FPCFLazyAnalysisScheduler
  16. class L0FieldImmutabilityAnalysis extends FPCFAnalysis

    Analysis that determines the immutability of org.opalj.br.Field

  17. class L0TACAIAnalysis extends FPCFAnalysis

    Basically just (re)creates the tac of a method if the result of the underlying abstract interpretation changes.

  18. sealed trait L0TACAIAnalysisScheduler extends TACAIInitializer
  19. case class MethodDescription(cf: String, name: String, desc: String) extends EntityDescription with Product with Serializable
  20. case class ParameterDescription(cf: String, name: String, desc: String, index: Int) extends EntityDescription with Product with Serializable
  21. case class PointsToRelation(lhs: EntityDescription, rhs: EntityDescription) extends Product with Serializable
  22. case class Statement(context: Context, node: CFGNode, stmt: Stmt[V], index: Int, code: Array[Stmt[V]], cfg: CFG[Stmt[V], TACStmts[V]]) extends Product with Serializable

    A statement that is passed to the concrete analysis.

    A statement that is passed to the concrete analysis.

    context

    The method containing the statement.

    node

    The basic block containing the statement.

    stmt

    The TAC statement.

    index

    The index of the Statement in the code.

    code

    The method's TAC code.

    cfg

    The method's CFG.

  23. case class StaticFieldDescription(cf: String, name: String, fieldType: String) extends EntityDescription with Product with Serializable
  24. class SystemPropertiesAnalysisScheduler extends ReachableMethodAnalysis
  25. trait TACAIBasedAPIBasedAnalysis extends APIBasedAnalysis

    An APIBasedAnalysis that ensures that whenever processNewCaller gets called, some (interim) version of the three-address code is available in the property store.

    An APIBasedAnalysis that ensures that whenever processNewCaller gets called, some (interim) version of the three-address code is available in the property store. For each update of org.opalj.tac.fpcf.properties.TACAI that actually contains a three-address code, processNewCaller is invoked, i.e., it might be called multiple times for the same caller. Due to monotonicity required for all results, this is still sound.

  26. trait TACAIBasedAnalysisState[TheContextType <: Context] extends AnalysisState with ContextualAnalysis

    A base class for the state of FPCF analyses operating on the three-address code of methods.

  27. trait TACAIInitializer extends FPCFAnalysisScheduler

    Transforms an aiResult to the 3-address code.

  28. class TACAIProvider extends FPCFAnalysis

    Provides the TACAI for all methods.

    Provides the TACAI for all methods. The TACAI provided by the TACAI provider is always detached from the underlying results of the abstract interpretation and therefore significantly reduces the overall memory consumption if the AIResults are not needed!

  29. sealed trait TACAIProviderScheduler extends TACAIInitializer with DomainBasedFPCFAnalysisScheduler

Value Members

  1. object AbstractIFDSAnalysis
  2. object ConfiguredMethodData extends Serializable
  3. object ConfiguredMethods extends Serializable
  4. object DefinitionSitesWithoutPutField

    Holds a map of DefinitionSiteWithoutPutField values, in order to provide unique identities (enable comparison via eq/neq).

  5. object EagerFieldImmutabilityAnalysis extends FieldImmutabilityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler

    Executor for the eager field immutability analysis.

  6. object EagerFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler
  7. object EagerL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFEagerAnalysisScheduler
  8. object EagerTACAIProvider extends TACAIProviderScheduler with FPCFEagerAnalysisScheduler
  9. object EntityDescription
  10. object LazyFieldImmutabilityAnalysis extends FieldImmutabilityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler

    Executor for the lazy field immutability analysis.

  11. object LazyFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler
  12. object LazyL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFLazyAnalysisScheduler
  13. object LazyTACAIProvider extends TACAIProviderScheduler with FPCFLazyAnalysisScheduler
  14. object MethodDescription extends Serializable
  15. object PointsToRelation extends Serializable
  16. object SystemPropertiesAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  17. object TACAIAnalysis
  18. object TACAITransformer extends BasicFPCFTransformerScheduler with TACAIInitializer

    Transforms a BaseAIResult to the 3-address code.

Ungrouped