package analyses
- Source
- package.scala
- Alphabetic
- By Inheritance
- analyses
- AnyRef
- Any
- Hide All
- Show All
- 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
handleNewCallergets 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.
- 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[EntityAssignment]], methodInvocations: Option[Array[MethodDescription]]) extends Product with Serializable
- case class ConfiguredMethods(nativeMethods: Array[ConfiguredMethodData]) extends Product with Serializable
- final case class DefinitionSiteWithoutPutField(method: DeclaredMethod, 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.
- case class EntityAssignment(lhs: EntityDescription, rhs: EntityDescription) extends Product with Serializable
- sealed trait EntityDescription extends AnyRef
- class FieldImmutabilityAnalysis extends FPCFAnalysis
Analysis that determines the immutability of org.opalj.br.Field
- 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
- 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 StaticFieldDescription(cf: String, name: String, fieldType: String) extends EntityDescription with Product with Serializable
- trait TACAIBasedAPIBasedAnalysis extends APIBasedAnalysis
An APIBasedAnalysis that ensures that whenever
processNewCallergets called, some (interim) version of the three-address code is available in the property store.An APIBasedAnalysis that ensures that whenever
processNewCallergets 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,processNewCalleris 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
- final def isTypeCompatible(formal: FieldType, actual: ValueInformation, requireNonNullReferenceValue: Boolean = false)(implicit classHierarchy: ClassHierarchy): Boolean
- final def isTypeCompatible(formal: FieldType, actual: FieldType)(implicit ch: ClassHierarchy): Boolean
- 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 EagerL1ThrownExceptionsAnalysis extends ThrownExceptionsAnalysisScheduler with BasicFPCFEagerAnalysisScheduler
Factory and runner for the L1ThrownExceptionsAnalysis.
- object EagerTACAIProvider extends TACAIProviderScheduler with FPCFEagerAnalysisScheduler
- object EntityAssignment extends Serializable
- 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 TACAIAnalysis
- object TACAITransformer extends BasicFPCFTransformerScheduler with TACAIInitializer
Transforms a BaseAIResult to the 3-address code.