The multiflow trace scheduling compiler
PG Lowney, SM Freudenberger, TJ Karzes… - … -Level Parallelism: A …, 1993 - Springer
PG Lowney, SM Freudenberger, TJ Karzes, WD Lichtenstein, RP Nix, JS O'donnell…
Instruction-Level Parallelism: A Special Issue of The Journal of Supercomputing, 1993•SpringerThe 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 …
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 …
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 article describes the Multiflow compiler and reports on the Multiflow practice and experience with compiling for instruction-level parallelism beyond basic blocks.
Springer