package analyses
- Alphabetic
- Public
- Protected
Package Members
Type Members
- 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.
- 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
- trait AbstractIFDSFact extends AnyRef
The super type of all IFDS facts.
- trait AbstractIFDSNullFact extends AbstractIFDSFact
The super type of all null facts.
- case class AllocationSiteDescription(cf: String, name: String, desc: String, instantiatedType: String, arrayComponentTypes: Seq[String]) extends EntityDescription with Product with Serializable
- case class ArrayDescription(array: EntityDescription, arrayType: String) extends EntityDescription with Product with Serializable
- case class ConfiguredMethodData(cf: String, name: String, desc: String, pointsTo: Option[Array[PointsToRelation]], methodInvocations: Option[Array[MethodDescription]]) extends Product with Serializable
- case class ConfiguredMethods(nativeMethods: Array[ConfiguredMethodData]) extends Product with Serializable
- 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.
- sealed trait EntityDescription extends AnyRef
- trait FieldImmutabilityAnalysisScheduler extends FPCFAnalysisScheduler
- 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.
- sealed trait FieldLocalityAnalysisScheduler extends FPCFAnalysisScheduler
- class FieldLocalityState extends AnyRef
- abstract class IFDSAnalysis[IFDSFact <: AbstractIFDSFact] extends FPCFLazyAnalysisScheduler
- class L0FieldImmutabilityAnalysis extends FPCFAnalysis
Analysis that determines the immutability of org.opalj.br.Field
- class L0TACAIAnalysis extends FPCFAnalysis
Basically just (re)creates the tac of a method if the result of the underlying abstract interpretation changes.
- sealed trait L0TACAIAnalysisScheduler extends TACAIInitializer
- case class MethodDescription(cf: String, name: String, desc: String) extends EntityDescription with Product with Serializable
- case class ParameterDescription(cf: String, name: String, desc: String, index: Int) extends EntityDescription with Product with Serializable
- case class PointsToRelation(lhs: EntityDescription, rhs: EntityDescription) extends Product with Serializable
- 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.
- case class StaticFieldDescription(cf: String, name: String, fieldType: String) extends EntityDescription with Product with Serializable
- class SystemPropertiesAnalysisScheduler extends ReachableMethodAnalysis
- 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. - 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.
- trait TACAIInitializer extends FPCFAnalysisScheduler
Transforms an aiResult to the 3-address code.
- 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!
- sealed trait TACAIProviderScheduler extends TACAIInitializer with DomainBasedFPCFAnalysisScheduler
Value Members
- object AbstractIFDSAnalysis
- object ConfiguredMethodData extends Serializable
- object ConfiguredMethods extends Serializable
- object DefinitionSitesWithoutPutField
Holds a map of DefinitionSiteWithoutPutField values, in order to provide unique identities (enable comparison via eq/neq).
- object EagerFieldImmutabilityAnalysis extends FieldImmutabilityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler
Executor for the eager field immutability analysis.
- object EagerFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFEagerAnalysisScheduler
- object EagerL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFEagerAnalysisScheduler
- object EagerTACAIProvider extends TACAIProviderScheduler with FPCFEagerAnalysisScheduler
- object EntityDescription
- object LazyFieldImmutabilityAnalysis extends FieldImmutabilityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler
Executor for the lazy field immutability analysis.
- object LazyFieldLocalityAnalysis extends FieldLocalityAnalysisScheduler with BasicFPCFLazyAnalysisScheduler
- object LazyL0TACAIAnalysis extends L0TACAIAnalysisScheduler with FPCFLazyAnalysisScheduler
- object LazyTACAIProvider extends TACAIProviderScheduler with FPCFLazyAnalysisScheduler
- object MethodDescription extends Serializable
- object PointsToRelation extends Serializable
- object SystemPropertiesAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
- object TACAIAnalysis
- object TACAITransformer extends BasicFPCFTransformerScheduler with TACAIInitializer
Transforms a BaseAIResult to the 3-address code.