The Multiflow Trace Scheduling Compiler (1993)
| Venue: | Journal of Supercomputing |
| Citations: | 169 - 1 self |
BibTeX
@ARTICLE{Lowney93themultiflow,
author = {P. Geoffrey Lowney and Stefan M. Freudenberger and Thomas J. Karzes and W. D. Lichtenstein and Robert P. Nix and John S. O’donnell and John C. Ruttenberg},
title = {The Multiflow Trace Scheduling Compiler},
journal = {Journal of Supercomputing},
year = {1993},
volume = {7},
pages = {51--142}
}
Years of Citing Articles
OpenURL
Abstract
The Multiflow compiler uses the trace scheduling algorithm to find and exploit instruction-level parallelism beyond basic blocks. The compiler generates code for VLIW computers that issue up to 28 operations each cycle and maintain more than 50 operations in flight. At Multiflow the compiler generated code for eight different target machine architectures and compiled over 50 million lines of FORTRAN and C applications and systems code. The requirement of finding large amounts of parallelism in ordinary programs, the trace scheduling algorithm, and the many unique features of the Multiflow hardware placed novel demands on the compiler. New techniques in instruction scheduling, register allocation, memory-bank management, and intermediate-code optimizations were developed, as were refinements to reduce the overhead of trace scheduling. This paper describes the Multiflow compiler and reports on the Multiflow practice and experience with compiling for instruction-level parallelism beyond basic blocks.







