Sharing analysis of arrays, collections, and recursive structures

  • Authors:
  • Mark Marron;Mario Méndez-Lojo;Manuel Hermenegildo;Darko Stefanovic;Deepak Kapur

  • Affiliations:
  • University of New Mexico;University of New Mexico;University of New Mexico and IMDEA-Software and Technical University of Madrid (Spain);University of New Mexico;University of New Mexico

  • Venue:
  • Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Precise modeling of the program heap is fundamental for understanding the behavior of a program, and is thus of significant interest for many optimization applications. One of the fundamental properties of the heap that can be used in a range of optimization techniques is the sharing relationships between the elements in an array or collection. If an analysis can determine that the memory locations pointed to by different entries of an array (or collection) are disjoint, then in many cases loops that traverse the array can be vectorized or transformed into a thread-parallel version. This paper introduces several novel sharing properties over the concrete heap and corresponding abstractions to represent them. In conjunction with an existing shape analysis technique, these abstractions allow us to precisely resolve the sharing relations in a wide range of heap structures (arrays, collections, recursive data structures, composite heap structures) in a computationally efficient manner. The effectiveness of the approach is evaluated on a set of challenge problems from the JOlden and SPECjvm98 suites. Sharing information obtained from the analysis is used to achieve substantial thread-level parallel speedups.