Alias Analysis Components
Lotus provides several alias analysis algorithms with different precision/performance trade-offs. Each analysis makes different trade-offs between precision, scalability, and analysis cost.
Reusable support modules are documented separately:
Pointer Analysis Metrics for evaluation helpers
Points-To Set Backends for points-to set backends
Alias Specification Manager for external-library specification support
Analysis Selection Guide
Choose the right analysis for your needs:
For Large Codebases (Speed Priority):
SparrowAA (CI mode): Fastest, context-insensitive, inclusion-based
AserPTA (CI mode): Fast with field sensitivity option
AllocAA: Lightweight heuristic-based tracking
FPA (KELP): Specialized for function pointer resolution
SRAA: Range-based for proving non-aliasing
DyckAA: Unification-based with Dyck-CFL reachability
For Maximum Precision:
LotusAA: Flow-sensitive and field-sensitive
Sea-DSA: Unification-based, context-sensitive with heap cloning
SparrowAA (1-CFA, 2-CFA): Context-sensitive, inclusion-based
AserPTA (1-CFA, 2-CFA, Origin): Context-sensitive, inclusion-based
Available Analyses
For detailed information about each analysis, see the corresponding documentation:
AllocAA — Allocation-Based AA - Lightweight heuristic-based alias analysis
AserPTA — Pointer Analysis - High-performance pointer analysis with multiple context sensitivities
DyckAA — Dyck-CFL Analysis - Unification-based alias analysis with Dyck-CFL reachability
Sea-DSA — Memory Graph AA - Context-sensitive, field-sensitive alias analysis based on DSA
Sparrow Pointer Analysis — Inclusion AA - Inclusion-based points-to analysis
FPA — Function Pointer Analyses (FLTA/MLTA/MLTADF/KELP) - Function pointer analysis with multiple algorithms
LotusAA — Lotus AA Engine - Lotus-specific alias analysis framework
UnderApproxAA — Must-Alias Analysis - Under-approximate alias analysis for conservative results
DynAA — Dynamic Alias AA - Dynamic validation of static alias analysis results
Strict Relations Alias Analysis — Algorithm - Strict Relation Alias Analysis built on interprocedural range analysis