Bottom-up program analysis has been traditionally easy to parallelize because functions without caller-callee relations can be analyzed independently. However, such function-level parallelism is significantly limited by the calling dependence – functions with caller-callee relations have to be analyzed sequentially because the analysis of a function depends on the analysis results, a.k.a., function summaries, of its callees. We observe that the calling dependence can be relaxed in many cases and, as a result, the parallelism can be improved.
In this paper, we present Cheetah, a framework of bottom-up data flow analysis, in which the analysis task of each function is elaborately partitioned into multiple sub-tasks to generate pipelineable function summaries. These sub-tasks are pipelined and run in parallel without any additional synchronization, even though the calling dependence exists. We formalize our idea under the IFDS/IDE framework and have implemented an application to checking null-dereference bugs in C/C++ programs.
We evaluate Cheetah on a series of standard benchmark programs and open-source projects, which demonstrates significant speedup over a conventional parallel design.
Fri 10 JulDisplayed time zone: (UTC) Coordinated Universal Time change
08:05 - 09:05 | I23-Code Artifact AnalysisJournal First / Technical Papers at Goguryeo Chair(s): Benoit Baudry KTH Royal Institute of Technology | ||
08:05 12mTalk | Conquering the Extensional Scalability Problem for Value-Flow Analysis FrameworksTechnical Technical Papers Qingkai Shi The Hong Kong University of Science and Technology, Rongxin Wu Department of Cyber Space Security, Xiamen University, Gang Fan Hong Kong University of Science and Technology, Charles Zhang The Hong Kong University of Science and Technology | ||
08:17 12mTalk | Pipelining Bottom-up Data Flow AnalysisTechnical Technical Papers Qingkai Shi The Hong Kong University of Science and Technology, Charles Zhang The Hong Kong University of Science and Technology | ||
08:29 8mTalk | An Empirical Validation of Oracle ImprovementJ1 Journal First Gunel Jahangirova Università della Svizzera italiana, David Clark University College London, Mark Harman , Paolo Tonella Università della Svizzera italiana | ||
08:37 8mTalk | Is Static Analysis Able to Identify Unnecessary Source Code?J1 Journal First Roman Haas CQSE GmbH, Rainer Niedermayr CQSE GmbH, Tobias Roehm CQSE GmbH, Sven Apel Saarland University Pre-print | ||
08:45 8mTalk | Memory and Resource Leak Defects and Their Repairs in Java ProjectsJ1 Journal First Mohammadreza Ghanavati Heidelberg University, Diego Costa Concordia University, Canada, Janos Seboek Heidelberg University, David Lo Singapore Management University, Artur Andrzejak Heidelberg University | ||
08:53 8mTalk | Towards Understanding and Detecting Fake Reviews in App StoresJ1 Journal First |