Interprocedural Array Remapping

  • Authors:
  • Michal Cierniak;Wei Li

  • Affiliations:
  • -;-

  • Venue:
  • PACT '97 Proceedings of the 1997 International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programming languages like Fortran or C define exactly the layout of array elements in memory. Programmers often use that definition to access the same memory via variables of different types. For many real programs this practice makes changing the layout of an array impossible without violating the semantics of the program since the same memory block may be accessed via variables of different types -- such accesses may now receive wrong array elements. On the other hand, changing array layout is often necessary to obtain good parallel performance or even to improve sequential performance by providing better cache locality. Our paper demonstrates that the problem of changing array layouts in the presence of multiple variables of different types accessing the same memory can be solved with our algorithms for 1) detecting overlapping arrays, 2) using procedure cloning to reduce overlapping, 3) array type coercion, and 4) code structure recovery.