"Heap Reference Analysis Using Access Graphs"
Dr. Uday Khedker, Department of Computer Science & Engineering
Bombay, Powai, Mumbai, India
Despite significant progress in the theory and practice of program analysis, analyzing properties of heap data has not reached the same level of maturity as the analysis of static and stack data. The spatial and temporal structure of stack and static data is well understood while that of heap data seems arbitrary and is unbounded. We devise bounded representations which summarize properties of the heap data. This summarization is based on the structure of the program which manipulates the heap. The resulting summary representations are certain kinds of graphs called access graphs. The boundedness of these representations and the monotonicity of the operations to manipulate them make it possible to compute them through data flow analysis.
An important application which benefits from heap reference analysis is garbage collection, where currently liveness is conservatively approximated by reachability from program variables. As a consequence, current garbage collectors leave a lot of garbage uncollected, a fact which has been confirmed by several empirical studies. We propose the first ever end-to-end static analysis to distinguish live objects from reachable objects. We use this information to make dead objects unreachable by modifying the program. This application is interesting because it requires discovering data flow information representing complex semantics. In particular, we formulate the following new analyses for heap data: liveness, availability, and anticipability and propose solution methods for them. Together, they cover various combinations of directions of analysis (i.e. forward and backward) and confluence of information (i.e. union and intersection).
Our analysis can also be used for plugging memory leaks in C/C++ languages.
Uday P. Khedker (http://www.cse.iitb.ac.in/~uday) finished B.E. from GEC Jabalpur in 1986, M.Tech. from Pune University in 1989, and Ph.D. from IIT Bombay in 1995. He taught at the Department of Computer Science at Pune University from 1994 to 2001 and since then is with IIT Bombay where he is currently a Professor of Computer Science & Engg.
His areas of interest are Programming Languages, Compilers and Program Analysis. He specializes in data flow analysis and its applications to code optimization. He has also been spearheading GCC work at IIT Bombay and has established the GCC Resource Center (http://www.cse.iitb.ac.in/grc) at IIT Bombay which has the mandate of (a) discovering essential abstractions in GCC code base to make it easier for novices to understand GCC internals much faster, and (b) adding new technologies to GCC.
He has published papers in leading journals and conferences, has contributed chapters in Compiler Design Handbook and has authored a book titled “Data Flow Analysis: Theory and Practice” (http://www.cse.iitb.ac.in/~uday/dfaBook-web) published by CRC Press, USA. He has also worked very closely with the industry as a consultant as well as a trainer of advanced topics in compilers, in general and data flow analysis, in particular.
[an error occurred while processing this directive]