Packages

p

org.opalj.tac.fpcf

analyses

package analyses

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. trait APIBasedAnalysis extends FPCFAnalysis

    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 CallSite(pc: Int, methodName: String, methodDescriptor: MethodDescriptor, receiver: ReferenceType) extends Product with Serializable
  6. 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.

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

  8. sealed trait FieldLocalityAnalysisScheduler extends FPCFAnalysisScheduler
  9. class FieldLocalityState extends AnyRef
  10. abstract class IFDSAnalysis[IFDSFact <: AbstractIFDSFact] extends FPCFLazyAnalysisScheduler
  11. class L0TACAIAnalysis extends FPCFAnalysis

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

  12. sealed trait L0TACAIAnalysisScheduler extends TACAIInitializer
  13. class L1FieldMutabilityAnalysis extends FPCFAnalysis

    Simple analysis that checks if a private (static or instance) field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.

    Simple analysis that checks if a private (static or instance) field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.

    Note

    Requires that the 3-address code's expressions are not deeply nested.

  14. sealed trait L1FieldMutabilityAnalysisScheduler extends FPCFAnalysisScheduler
  15. class L2FieldMutabilityAnalysis extends FPCFAnalysis

    Simple analysis that checks if a private (static or instance) field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.

    Simple analysis that checks if a private (static or instance) field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.

    Note

    Requires that the 3-address code's expressions are not deeply nested.

  16. trait L2FieldMutabilityAnalysisScheduler extends FPCFAnalysisScheduler
  17. case class Statement(method: Method, 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.

    method

    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.

  18. class SystemPropertiesAnalysisScheduler extends ReachableMethodAnalysis
  19. 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.

  20. trait TACAIBasedAnalysisState extends AnyRef

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

  21. trait TACAIInitializer extends FPCFAnalysisScheduler

    Transforms an aiResult to the 3-address code.

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

  23. sealed trait TACAIProviderScheduler extends TACAIInitializer with DomainBasedFPCFAnalysisScheduler

Value Members

  1. object AbstractIFDSAnalysis
  2. object DefinitionSitesWithoutPutField

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

  3. object EagerFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler
  4. object EagerL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFEagerAnalysisScheduler
  5. object EagerL1FieldMutabilityAnalysis extends L1FieldMutabilityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler

    Executor for the field mutability analysis.

  6. object EagerL2FieldMutabilityAnalysis extends L2FieldMutabilityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler

    Executor for the field mutability analysis.

  7. object EagerTACAIProvider extends TACAIProviderScheduler with FPCFEagerAnalysisScheduler
  8. object LazyFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler
  9. object LazyL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFLazyAnalysisScheduler
  10. object LazyL1FieldMutabilityAnalysis extends L1FieldMutabilityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler

    Executor for the lazy field mutability analysis.

  11. object LazyL2FieldMutabilityAnalysis extends L2FieldMutabilityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler

    Executor for the lazy field mutability analysis.

  12. object LazyTACAIProvider extends TACAIProviderScheduler with FPCFLazyAnalysisScheduler
  13. object SystemPropertiesAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  14. object TACAIAnalysis
  15. object TACAITransformer extends BasicFPCFTransformerScheduler with TACAIInitializer

    Transforms a BaseAIResult to the 3-address code.

Ungrouped