Sparse flow sensitive pointer analysis for multithreaded programs
For C programs, flow sensitivity is important to enable pointer analysis to achieve highly usable precision. Despite significant recent advances in scaling flow sensitive pointer analysis sparsely for sequential C programs, relatively little progress has been made for multithreaded C programs. In this paper, we present FSAM, a new Flow Sensitive pointer Analysis that achieves its scalability for large Multithreaded C programs by performing sparse analysis on top of a series of thread interference analysis phases. We evaluate FSAM with 10 multithreaded C programs (with more than 100K lines of code for the largest) from Phoenix 2.0, Parsec 3.0 and open source applications. For two programs, raytrace and x2 64, the traditional data flow based flow sensitive pointer analysis is unscalable (under two hours) but our analysis spends just under 5 minutes on raytrace and 9 minutes on x264. For the rest, our analysis is 12x faster and uses 28x less memory.
2016 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)