Abstract:
The long-time quest of the parallelizing compiler community for effective
aggregate summarization techniques has led to increasingly sophisticated
array section representations. In this paper, we show how the
latest of these can be used for nested C structure summarization.
We then show how this summarization notation can be used to make
Shape Analysis precise on arbitrarily low-level code. Combining these
techniques, we show that an appropriate generalization of Memory
Classification Analysis, originally presented for Fortran programs,
provides a flow dependence summarization technique for C code as well,
while avoiding code normalization compared with previous techniques.
In so doing, we
break down perhaps the final conceptual barriers in the construction of
practical programmer-friendly C parallelizing compilers.