CARS: A New Code Generation Framework for Clustered ILP Processors
CARS: A New Code Generation Framework for Clustered ILP Processors
Files
Publication or External Link
Date
2000-08-08
Authors
Kailas, Krishnan
Ebcioglu, Kemal
Agrawala, Ashok
Advisor
Citation
DRUM DOI
Abstract
Clustered ILP processors are characterized by a large number of
non-centralized on-chip resources grouped into clusters. Traditional code
generation schemes for these processors consist of multiple phases for
cluster assignment, register allocation and instruction scheduling.
Most of these approaches need additional re-scheduling phases because they
often do not impose finite resource constraints in all phases of code
generation. These phase-ordered solutions have several drawbacks,
resulting in the generation of poor performance code. Moreover, the
iterative/back-tracking algorithms used in some of these schemes have
large running times. In this report we present CARS, a code generation
framework for Clustered ILP processors, which combines the cluster
assignment, register allocation, and instruction scheduling phases into a
single code generation phase, thereby eliminating the problems associated
with phase-ordered solutions. The CARS algorithm explicitly takes into
account all the resource constraints at each cluster scheduling step to
reduce spilling and to avoid iterative re-scheduling steps. We also
present a new on-the-fly register allocation scheme developed for CARS.
We describe an implementation of the proposed code generation framework and
the results of a performance evaluation study using the SPEC95/2000 and
MediaBench benchmarks.
(Also cross-referenced as UMIACS-TR-2000-55)