Title
Extended lattice-based memory allocation.
Abstract
This work extends lattice-based memory allocation, an earlier work on memory reuse through array contraction. Such an optimization is used for optimizing high-level programming languages where storage mapping may be abstracted away from programmers and to complement code transformations that introduce intermediate buffers. The main motivation for this extension is to improve the handling of more general forms of specifications we see today, e.g., with loop tiling, pipelining, and other forms of parallelism available in explicitly-parallel languages. Specifically, we handle the case when conflicting constraints (those that describe the array indices that cannot share the same location) are specified as a (non-convex) union of polyhedra. The choice of directions (or basis) of array reuse becomes important when dealing with non-convex specifications. We extend the two dual approaches in the original work to handle unions of polyhedra, and to select a suitable basis. Our final approach relies on a combination of the two, also revealing their links with, on one hand, the construction of multi-dimensional schedules for parallelism and tiling (but with a fundamental difference that we identify) and, on the other hand, the construction of universal reuse vectors (UOV), which was only used so far in a specific context, for schedule-independent mapping.
Year
DOI
Venue
2016
10.1145/2892208.2892213
CC
Keywords
Field
DocType
Static optimizations, Polyhedral analysis, Storage mapping/reuse, Array contraction
Pipeline (computing),Static memory allocation,Programming language,Lattice (order),Reuse,Computer science,Polyhedron,Theoretical computer science,Loop tiling,Schedule,Memory management
Conference
Citations 
PageRank 
References 
0
0.34
3
Authors
3
Name
Order
Citations
PageRank
Alain Darte188856.40
Alexandre Isoard200.68
Tomofumi Yuki3776.29