Alias Analysis
This section covers the various alias analysis algorithms implemented in Lotus.
Start with Alias Analysis Components for a high-level selection guide. Algorithm pages describe the assumptions and entry points of individual analyses, while the infrastructure pages cover common points-to-set representations, external library specifications, and evaluation metrics. Results depend on the LLVM module and the model of external calls, so use the specification and metrics pages alongside an algorithm page when comparing analyses.
- Alias Analysis Components
- AllocAA — Allocation-Based AA
- Sparrow Pointer Analysis — Inclusion AA
- AserPTA — Pointer Analysis
- BootstrapAA
- CclyzerAA
- DDA
- DyckAA — Dyck-CFL Analysis
- Sea-DSA — Memory Graph AA
- Flow-Sensitive Pointer Analysis
- Value-Flow-Based Pointer Analysis
- Overview
- Public API
- Entry points
- Algorithm
- Memory model and limitations
- Command line
- LotusAA — Lotus AA Engine
- UnderApproxAA — Must-Alias Analysis
- DynAA — Dynamic Alias AA
- Strict Relations Alias Analysis — Algorithm
- 1. vSSA / SSI Transformation
- 2. Symbolic Range Analysis
- 3. Strict-Inequality Construction
- 4. Constraint Propagation Solver
- 5. Alias Disambiguation (Final Decision)
- 6. PDG Memory-Node Reduction (Applicability)
- Summary of Properties
- Pointer Analysis Metrics
- Points-To Set Backends
- Alias Specification Manager
- TPA: Flow- and Context-Sensitive Pointer Analysis