Parallelized Program Analysis

Abstract: This thesis presents a framework for parallelized program analysis. It uses available parallel processing power in standard desktop computers to speed up static program analysis. Today, processor chip manufacturers produce single processor chips containing multiple cores, each with a processing power of previous single-core processors. Major processor suppliers have released processors with 2, 4, and 6 cores and are currently working on processors with 8 and 16 cores, and are expected to produce processors with a few hundred cores in the near future. Static program analysis finds programs’ runtime properties at compile time. It is time-consuming to produce results of high quality, which is necessary for the results to be useful. One way to reduce analysis time is to take advantage of the processing power of multi-core processors. The presented framework supports sequences of static program analyses, each producing partial results. In this thesis, the framework is instantiated with points-to analysis, reachability analysis, and escape analysis. Points-to analysis calculates object references in a program and provides the input for subsequent analyses. Reachability analysis calculates reachable methods and provides further input to the escape analysis, which finds object and method lifetimes. It is possible to implement other data-flow analyses using the same parallelized approach by choosing different analysis value types and transfer functions. The framework also facilitates the implementation of static analyses that automatically benefit from the parallelized approaches that the framework offers. The framework shortens the analysis time for static program analysis based on points-to analysis in two ways: using a parallelized approach for points-to analysis, and using parallelized approaches for analyses relying on points-to analysis results. It is also possible to shorten the development time of other analyses when reusing the functionality of the framework. To further improve the usefulness of the framework, requirements for additional static analysis should be captured, and the framework should be extended accordingly. It should also facilitate to perform independent client analyses in parallel, rather than in sequence. These challenges are part of our future work.

  CLICK HERE TO DOWNLOAD THE WHOLE DISSERTATION. (in PDF format)