Package proguard.analysis.cpa.bam
package proguard.analysis.cpa.bam
-
ClassDescriptionBamCache<ContentT extends AbstractState<ContentT>>Generic interface for the BAM cache, where the blocks represent a function identified with a
SignatureT.BamCacheImpl<ContentT extends AbstractState<ContentT>>BamCpa<ContentT extends AbstractState<ContentT>>AConfigurableProgramAnalysisfor inter-procedural analysis using block abstraction memoization as described in , which is defined by a domain-dependentCpaWithBamOperatorsthat adds three operators: reduce, expand, and rebuild.BamLocationDependent<ContentT extends AbstractState<ContentT>>If the usage of anAbstractStatedepends on the specific BAM cache entry it belongs to, it should implementBamLocationDependentto link it to its source reached set.BamTransferRelation<ContentT extends AbstractState<ContentT>>ThisTransferRelationextends an analysis inter-procedurally.BlockAbstraction<ContentT extends AbstractState<ContentT>>A block abstraction is a summary of the analysis of a procedure call, represented by the set of reached abstract states and a waitlist of states that still need to be analyzed.CpaWithBamOperators<ContentT extends AbstractState<ContentT>>A domain dependent analysis that can be wrapped with aBamCpato be extended inter-procedurally.ExpandOperator<ContentT extends AbstractState<ContentT>>This operator is used to recover the information discarded when entering a procedure block depending on the domain-specific analysis.ThisRebuildOperatorreturns the originalAbstractStatewithout performing any rebuilding.NoOpReduceOperator<ContentT extends AbstractState<ContentT>>ThisReduceOperatorreturns the originalAbstractStatewithout performing any reduction.This operator is used to avoid collision of program identifiers when returning from a procedure call.ReduceOperator<ContentT extends AbstractState<ContentT>>This operator is used to discard unnecessary information when entering a procedure block depending on the domain-specific analysis (e.g.