Data Flow Analysis of Asynchronous Systems using Infinite Abstract Domains
This work addresses a specific bottleneck in data flow analysis for distributed systems, offering an incremental improvement over prior methods.
The paper tackles the problem of precise data flow analysis for asynchronous message-passing systems by generalizing existing techniques to admit infinite abstract domains, which are commonly used for high precision. The implementation shows significantly higher precision on 14 benchmarks compared to baselines that either do not elide infeasible paths or only admit finite domains.
Asynchronous message-passing systems are employed frequently to implement distributed mechanisms, protocols, and processes. This paper addresses the problem of precise data flow analysis for such systems. To obtain good precision, data flow analysis needs to somehow skip execution paths that read more messages than the number of messages sent so far in the path, as such paths are infeasible at run time. Existing data flow analysis techniques do elide a subset of such infeasible paths, but have the restriction that they admit only finite abstract analysis domains. In this paper we propose a generalization of these approaches to admit infinite abstract analysis domains, as such domains are commonly used in practice to obtain high precision. We have implemented our approach, and have analyzed its performance on a set of 14 benchmarks. On these benchmarks our tool obtains significantly higher precision compared to a baseline approach that does not elide any infeasible paths and to another baseline that elides infeasible paths but admits only finite abstract domains.