Package proguard.analysis.cpa.bam
-
Interface Summary Interface Description BamCache<SignatureT extends Signature> Generic interface for the BAM cache, where the blocks represent a function identified with aSignatureT
.BamLocationDependent<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,AbstractStateT extends AbstractState & ProgramLocationDependent<CfaNodeT,CfaEdgeT,SignatureT>,SignatureT extends Signature> If the usage of anAbstractState
depends on the specific BAM cache entry it belongs to, it should implementBamLocationDependent
to link it to its source reached set.ExpandOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> This operator is used to recover the information discarded when entering a procedure block depending on the domain-specific analysis.RebuildOperator This operator is used to avoid collision of program identifiers when returning from a procedure call.ReduceOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> This operator is used to discard unnecessary information when entering a procedure block depending on the domain-specific analysis (e.g. -
Class Summary Class Description BamCacheImpl<SignatureT extends Signature> A simple implementation ofBamCache
where the cache is implemented as aHashMap
.BamCpa<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> AConfigurableProgramAnalysis
for inter-procedural analysis using block abstraction memoization as described in {@see https://dl.acm.org/doi/pdf/10.1145/3368089.3409718}, which is defined by a domain-dependentCpaWithBamOperators
that adds three operators: reduce, expand, and rebuild.BamTransferRelation<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> ThisTransferRelation
extends an analysis inter-procedurally.BlockAbstraction 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<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> A domain dependent analysis that can be wrapped with aBamCpa
to be extended inter-procedurally.NoOpRebuildOperator ThisRebuildOperator
returns the originalAbstractState
without performing any rebuilding.NoOpReduceOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> ThisReduceOperator
returns the originalAbstractState
without performing any reduction.