Published January 1, 1990 | Version public
Technical Report Open

Compiler Optimization of Array Data Storage

Abstract

The literature has witnessed much work aimed at improving the efficiency of mernory systems. The motivation is obvious: the high cost of page faults in hierarchical stores. Most architectures, including vector processors, shared - and distributed - memory multiprocessors, and interleaved memories, similarly reward data locality and predictable patterns of access. Most current endeavors, however, prefix the storage organization of data operands and either manipulate loops in the code, tailor algorithms, or tune prefetching strategies and replacement policies. A methodology and an algorithm for automatically organizing the storage of array data for efficient access by the executing code are described. The simple techniques presented may be incorporated in a compiler and are complementary to the other optimizations in the literature. Furthermore, examples in Fortran 8X and Fortran 77 pseudo-code support the general applicability of the work to programming languages, both scalar as well as array. Notwithstanding the column-major storage constraints, a technique for optiimizing storage in Fortran 77 is outlined. The prudence of of a compiler-optimized approach over a user-optimized approach to data storage organization is discussed.

Files

postscript.pdf

Files (2.4 MB)

Name Size Download all
md5:82a44492829bd3c540b2d41108e7f8ed
1.1 MB Preview Download
md5:a2f694e1b9d2c8aa061c3f5e1cff2fda
1.3 MB Download

Additional details

Identifiers

Eprint ID
26724
Resolver ID
CaltechCSTR:1990.cs-tr-90-07

Dates

Created
2001-04-25
Created from EPrint's datestamp field
Updated
2019-10-03
Created from EPrint's last_modified field

Caltech Custom Metadata

Caltech groups
Computer Science Technical Reports