On the fly MHP Analysis MayHappeninParallel (MHP) analysis forms the basis for many problems of program analysis and program understanding. MHP analysis can also be used by integrateddevelopmentenvironments (IDEs) to help programmers to refactor parallelprograms, identify racy programs, understand which parts of the program run in parallel, and so on. Since the code keeps changing in the IDE, recomputing the MHP information after every change can be an expensive affair. In this manuscript, we propose a novel scheme to perform onthefly MHP analysis of programs written in APGAS based task parallel languages like X10 to keep the MHP information up to date, in an IDE environment.NThe key insight of our proposed approach to maintain the MHP information up to date is that we need not rebuild (from scratch) every data structure related to MHP information, after each modification (addition or deletion of statements) in the source code. The idea is to reuse the old MHP information as much as possible and recompute the MHP information (of a small set of specific statements) which depends on the statement added or removed. We introduce two new algorithms that deal with addition and removal of parallel constructs like finish, async, atomic, and sequential constructs like loop, if, ifelse and other sequential statements, on the fly. We have implemented these algorithms as part of a plugin for X10DT, a popular IDE (Integrated Development Environment) to develop X10 programs. Our evaluation shows that the proposed onthefly techniques run much faster than the repeated invocations of the fastest known MHP analysis for X10 programs.

Batch Alias Analysis Many programanalysis based tools require precise pointstoalias information only for some program variables. To meet this requirement efficiently, there have been many works on demanddriven analyses that perform only the work necessary to compute the pointsto or alias information on the requested variables (queries). However, these demanddriven analyses can be very expensive when applied on large systems where the number of queries can be significant. Such a blowup in analysis time is unacceptable in cases where scalability with realtime constraints is crucial; for example, when program analysis tools are plugged into an IDE (Integrated Development Environment). In this paper, we propose schemes to improve the scalability of demanddriven analyses without compromising on precision. Our work is based on novel ideas for eliminating irrelevant and redundant dataflow paths for the given queries. We introduce the idea of batch analysis, which can answer multiple given queries in batch mode. Batch analysis suits the environments with strict time constraints, where the queries come in batch. We present a batch alias analysis framework that can be used to speed up given demanddriven alias analysis. To show the effectiveness of this framework, we use two demanddriven alias analyses (1) the existing best performing demanddriven alias analysis tool for racedetection clients and (2) an optimized version thereof that avoids irrelevant computation. Our evaluations on a simulated datarace client, and on a recent programunderstanding tool, show that batch analysis leads to significant performance gains, along with minor gains in precision.