Program Analysis Techniques for Memory Disambiguation

Martin Rinard
MIT Laboratory of Computer Science

Wednesday, April 18, Volen 101, 2:00-3.00 pm

This talk presents two new static analysis techniques, a pointer analysis and a symbolic bounds analysis, that precisely characterize how the program accesses memory. Pointer analysis computes where pointer variables may point during the execution of the program. The symbolic bounds analysis characterizes how the program accesses regions within dynamically allocated blocks of memory. Both techniques can successfully analyze recursive and multithreaded programs that heavily use pointers. Experimental results from our implemented program analysis system show that these techniques enable a wide range of further analyses, transformations, and safety checks, including race detection, detection of bounds violations for dynamically allocated regions of memory, elimination of array bounds checks, and automatic parallelization.

Host: Liuba Shrira