class AllocationSitePointsToBasedAliasAnalysis extends AbstractPointsToBasedAliasAnalysis with AbstractPointsToAnalysis with AllocationSiteBasedAnalysis with AllocationSiteAndTacBasedAliasAnalysis
An alias analysis based on points-to information that contain the possible allocation sites of an element.
- Alphabetic
- By Inheritance
- AllocationSitePointsToBasedAliasAnalysis
- AllocationSiteAndTacBasedAliasAnalysis
- AllocationSiteBasedAliasAnalysis
- AllocationSiteBasedAnalysis
- AbstractPointsToAnalysis
- ReachableMethodAnalysis
- PointsToAnalysisBase
- TypeConsumerAnalysis
- AbstractPointsToBasedAliasAnalysis
- SetBasedAliasAnalysis
- AbstractPointsToBasedAnalysis
- ContextualAnalysis
- TacBasedAliasAnalysis
- AbstractAliasAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AllocationSitePointsToBasedAliasAnalysis(project: SomeProject)
- project
The project
Type Members
- type AliasElementType = (Context, PC)
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAliasAnalysis → SetBasedAliasAnalysis
- type AliasSet = AllocationSiteBasedAliasSet
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAliasAnalysis → SetBasedAliasAnalysis
- type AnalysisContext = AliasAnalysisContext
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAliasAnalysis → AbstractAliasAnalysis
- type AnalysisState = AllocationSitePointsToBasedAliasAnalysisState
- Attributes
- protected[this]
- Definition Classes
- AllocationSitePointsToBasedAliasAnalysis → AllocationSiteAndTacBasedAliasAnalysis → AllocationSiteBasedAliasAnalysis → AbstractPointsToBasedAliasAnalysis → SetBasedAliasAnalysis → TacBasedAliasAnalysis → AbstractAliasAnalysis
- type ContextType = cg.TypeIterator.ContextType
- Definition Classes
- TypeConsumerAnalysis
- type DependerType = AnyRef
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase → AbstractPointsToBasedAnalysis
- type ElementType = Long
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- type PointsToSet = AllocationSitePointsToSet
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- type PropertyType = cg.TypeIterator.PropertyType
- Definition Classes
- TypeConsumerAnalysis
- type State = PointsToAnalysisState[ElementType, PointsToSet, ContextType]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase → AbstractPointsToBasedAnalysis
- type Tac = TACode[TACMethodParameter, DUVar[ValueInformation]]
- Attributes
- protected[this]
- Definition Classes
- AbstractAliasAnalysis
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def analyze(declaredMethod: DeclaredMethod): PropertyComputationResult
- Definition Classes
- ReachableMethodAnalysis
- def analyzeTAC()(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult
Computes the alias relation of the org.opalj.br.fpcf.properties.alias.AliasEntity using the TAC representation of the corresponding methods.
Computes the alias relation of the org.opalj.br.fpcf.properties.alias.AliasEntity using the TAC representation of the corresponding methods.
This method is called when the TACs of the methods of both elements are available. If an element is not method bound, it is not considered.
- returns
The result of the computation.
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAliasAnalysis → TacBasedAliasAnalysis
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def ch: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
- def checkMustAlias(intersectingElement: AliasElementType)(implicit state: AnalysisState, context: AnalysisContext): Boolean
Checks if the current analysis state allows for a MustAlias relation between the two elements.
Checks if the current analysis state allows for a MustAlias relation between the two elements. It assumes the the given element is the only intersection between the two points-to sets.
This method always returns false and should be overriden if more precise must alias checks can be performed.
- intersectingElement
The only between the two points-to sets.
- returns
trueif the two elements can be a MustAlias,falseotherwise.
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteAndTacBasedAliasAnalysis → SetBasedAliasAnalysis
- implicit final def classHierarchy: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- implicit val contextProvider: ContextProvider
- Definition Classes
- TypeConsumerAnalysis
- def continuation(someEPS: SomeEPS)(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult
Continues the computation when any depending property is updated.
Continues the computation when any depending property is updated.
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAliasAnalysis → TacBasedAliasAnalysis → AbstractAliasAnalysis
- def continuationForNewAllocationSitesAtArrayLoad(defSiteObject: Entity, arrayType: ArrayType, filter: (ReferenceType) => Boolean, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtArrayStore(knownPointsTo: PointsToSet, rhsDefSitesEPS: Map[SomeEPK, SomeEOptionP], arrayType: ArrayType, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtGetField(defSiteObject: Entity, fieldOpt: Option[DeclaredField], filter: (ReferenceType) => Boolean, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtPutField(knownPointsTo: PointsToSet, rhsDefSitesEPS: Map[SomeEPK, SomeEOptionP], fieldOpt: Option[DeclaredField], dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForShared(e: Entity, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToAnalysis → PointsToAnalysisBase
- def continuationForTAC(declaredMethod: DeclaredMethod)(someEPS: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- def createContext(entity: AliasEntity): AnalysisContext
Creates the context to use for the computation.
Creates the context to use for the computation.
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAliasAnalysis → AbstractAliasAnalysis
- def createPartialResults(e: Entity, newPointsToSet: PointsToSet, newDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], updatePointsTo: (PointsToSet) => PointsToSet, isUpdate: Boolean = false)(implicit state: State): Seq[ProperPropertyComputationResult]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def createPointsToSet(pc: Int, callContext: ContextType, allocatedType: ReferenceType, isConstant: Boolean, isEmptyArray: Boolean = false): AllocationSitePointsToSet
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- def createResult()(implicit state: AnalysisState, context: AnalysisContext): ProperPropertyComputationResult
Creates the result of the analysis based on the current state.
Creates the result of the analysis based on the current state.
- Attributes
- protected[this]
- Definition Classes
- SetBasedAliasAnalysis → AbstractAliasAnalysis
- def createResults(implicit state: State): ArrayBuffer[ProperPropertyComputationResult]
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToAnalysis → PointsToAnalysisBase
- def createState: AnalysisState
Creates the state to use for the computation.
Creates the state to use for the computation.
- Attributes
- protected[this]
- Definition Classes
- AllocationSitePointsToBasedAliasAnalysis → AbstractAliasAnalysis
- def currentPointsTo(depender: Entity, dependee: Entity, typeFilter: (ReferenceType) => Boolean)(implicit state: State): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def currentPointsToOfDefSite(depender: DependerType, dependeeDefSite: Int, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def currentPointsToOfDefSites(depender: DependerType, defSites: IntTrieSet, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): Iterator[PointsToSet]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- implicit val declaredFields: DeclaredFields
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- implicit val declaredMethods: DeclaredMethods
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- implicit val definitionSites: DefinitionSites
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- def determineAlias(e: Entity): ProperPropertyComputationResult
Determines the alias relation for the given entity.
Determines the alias relation for the given entity.
- e
The entity to determine the aliasing information for.
- returns
The result of the computation.
- Definition Classes
- AbstractAliasAnalysis
- def doDetermineAlias(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult
Called to determine the alias relation for the given entity.
Called to determine the alias relation for the given entity.
This method is implemented by the concrete alias analysis.
- context
The context to determine the aliasing information for.
- state
The state to use for the computation.
- Definition Classes
- TacBasedAliasAnalysis → AbstractAliasAnalysis
- def emptyPointsToSet: AllocationSitePointsToSet
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit val formalParameters: VirtualFormalParameters
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def getDefSite(pc: Int)(implicit state: State): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def getFormalParameter(index: Int, formalParameters: ArraySeq[VirtualFormalParameter], context: Context): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def getTypeIdOf(element: br.fpcf.properties.pointsto.AllocationSite): Int
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def getTypeOf(element: br.fpcf.properties.pointsto.AllocationSite): ReferenceType
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def handleArrayLoad(arrayType: ArrayType, pc: Int, arrayDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleArrayStore(arrayType: ArrayType, arrayDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleCallParameter(paramDefSites: IntTrieSet, paramIndex: Int, target: Context)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleCallReceiver(receiverDefSites: IntTrieSet, target: Context, isNonVirtualCall: Boolean, indirectConstructorPCAndType: Option[(Int, ReferenceType)] = None)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleGetField(fieldOpt: Option[DeclaredField], pc: Int, objRefDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleGetStatic(field: DeclaredField, pc: Int, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handlePointsToSetElement(ase: AliasSourceElement, pointsToEntity: Entity, element: ElementType)(implicit state: AnalysisState, context: AnalysisContext): Unit
Handles a single element of the given points-to set that is associated with AliasSourceElement and has not been handled so far.
Handles a single element of the given points-to set that is associated with AliasSourceElement and has not been handled so far.
- ase
The AliasSourceElement the pointsTo set is associated with.
- pointsToEntity
The pointsTo entity the pointTo Set belongs to.
- element
The pointsTo Element to handle.
- Attributes
- protected[this]
- Definition Classes
- AllocationSitePointsToBasedAliasAnalysis → AbstractPointsToBasedAliasAnalysis
- def handlePutField(fieldOpt: Option[DeclaredField], objRefDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handlePutStatic(field: DeclaredField, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def interimResult(lb: Alias, ub: Alias)(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult
Creates a intermediate result for the given upper and lower bounds of the alias properties.
Creates a intermediate result for the given upper and lower bounds of the alias properties.
- Attributes
- protected[this]
- Definition Classes
- AbstractAliasAnalysis
- def isEmptyArray(element: br.fpcf.properties.pointsto.AllocationSite): Boolean
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit final def logContext: LogContext
- Definition Classes
- ProjectBasedAnalysis
- val mergeClassConstants: Boolean
- Definition Classes
- AllocationSiteBasedAnalysis
- val mergeExceptions: Boolean
- Definition Classes
- AllocationSiteBasedAnalysis
- val mergeStringBuilderBuffer: Boolean
- Definition Classes
- AllocationSiteBasedAnalysis
- val mergeStringConstants: Boolean
- Definition Classes
- AllocationSiteBasedAnalysis
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- implicit def p: SomeProject
- Definition Classes
- ProjectBasedAnalysis → ProjectBasedAnalysis
- val pointsToPropertyKey: PropertyKey[AllocationSitePointsToSet]
- Attributes
- protected[this]
- Definition Classes
- AllocationSiteBasedAnalysis → AbstractPointsToBasedAnalysis
- def pointsToUB(eOptP: EOptionP[Entity, PointsToSet]): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def processMethod(callContext: ContextType, tacEP: EPS[Method, properties.TACAI]): ProperPropertyComputationResult
- Definition Classes
- AbstractPointsToAnalysis → ReachableMethodAnalysis
- def processMethodWithoutBody(callContext: ContextType): ProperPropertyComputationResult
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- final val project: SomeProject
- Definition Classes
- AllocationSitePointsToBasedAliasAnalysis → ProjectBasedAnalysis → ProjectBasedAnalysis
- implicit final val propertyStore: PropertyStore
- Definition Classes
- FPCFAnalysis
- final def ps: PropertyStore
- Definition Classes
- FPCFAnalysis
- def result(alias: Alias)(implicit context: AnalysisContext): ProperPropertyComputationResult
Creates a final Result with the given alias property.
Creates a final Result with the given alias property.
- Attributes
- protected[this]
- Definition Classes
- AbstractAliasAnalysis
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toEntity(defSite: Int)(implicit state: State): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit val typeIterator: TypeIterator
- Definition Classes
- TypeConsumerAnalysis
- def updatedDependees(eps: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def updatedPointsToSet(oldPointsToSet: PointsToSet, newDependeePointsToSet: PointsToSet, dependee: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
- Deprecated