Code Generation for Streaming: an Access/Execute Mechanism

Authors:Benitez, Manuel, Department of Computer ScienceUniversity of Virginia Davidson, Jack, Department of Computer ScienceUniversity of Virginia

Access/execute architectures have several advantages over more traditional architectures. Because address generation and memory access are decoupled from operand use, memory latencies are tolerated better, there is more potential for concurrent operation, and it permits the use of specialized hardware to facilitate fast address generation. This paper describes the code generation and optimization algorithms that are used in an optimizing compiler for an architecture that contains explicit hardware support for the access/execute model of computation. Of particular interest is the novel approach that the compiler uses to detect recurrence relations in programs and to generate code for them. Because these relations are often used in problem domains that require significant computational resources, detecting and handling them can result in significant reductions in execution time. While the techniques discussed were originally targeted for one specific architecture, many of the techniques are applicable to commonly available microprocessors. The paper describes the algorithms as well as our experience with using them on a number of machines.
Note: Abstract extracted from PDF text

All rights reserved (no additional license for public reuse)
Source Citation:

Benitez, Manuel, and Jack Davidson. "Code Generation for Streaming: an Access/Execute Mechanism." University of Virginia Dept. of Computer Science Tech Report (1990).

University of Virginia, Department of Computer Science
Published Date: