Demand-driven Alias Analysis : Formalizing Bidirectional Analyses for Soundness and Precision
Swati Jaiswal, Uday P. Khedker, and Supratik Chakraborty

TL;DR
This paper formalizes demand-driven alias analysis as bidirectional data flow analysis, proving its soundness and potential for increased precision over exhaustive methods, especially in C/C++ contexts, with practical devirtualization benefits.
Contribution
It formalizes demand-driven alias analysis as bidirectional data flow, demonstrating its soundness and improved precision over exhaustive analysis, particularly for C/C++ programs.
Findings
Demand-driven analysis can be formalized as bidirectional data flow.
The method is more precise than exhaustive analysis in Java and C/C++.
Measurements show the method is more efficient and precise for devirtualization.
Abstract
A demand-driven approach to program analysis have been viewed as efficient algorithms to compute only the information required to serve a target demand. In contrast, an exhaustive approach computes all information in anticipation of it being used later. However, for a given set of demands, demand-driven methods are believed to compute the same information that would be computed by the corresponding exhaustive methods. We investigate the precision and bidirectional nature of demand-driven methods and show that: (a) demand-driven methods can be formalized inherently as bidirectional data flow analysis because the demands are propagated against the control flow and the information to satisfy the demands is propagated along the control flow. We extend the formalization of the Meet Over Paths solution to bidirectional flows. This formalization helps us to prove the soundness and precision…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Security and Verification in Computing · Logic, programming, and type systems
