1992
DOI: 10.1145/143103.143141
|View full text |Cite
|
Sign up to set email alerts
|

Register allocation for software pipelined loops

Abstract: Software pipelining is an important instruction scheduling technique for efficiently overlapping successive iterations of loops and executing them in parallel. This paper studies the task of register allocation for software pipelined loops, both with and without hardware features that are specifically aimed at supporting software pipelines. Register allocation for software pipelines presents certain novel problems leading to unconventional solutions, especially in the presence of hardware support. This paper f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
83
0

Year Published

1993
1993
2016
2016

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 60 publications
(83 citation statements)
references
References 14 publications
0
83
0
Order By: Relevance
“…It is general enough to allow many variants for register optimisation methods: for instance, a variant may correspond to a particular shape of the reuse graph, or to a specific technique for computing it. It allows to model buffer optimisation problem (Ning and Gao, 1993), as well as rotating register files (Rau et al, 1992). Later, these two variants have been studied in (Touati and Eisenbeis, 2004) and will be compared to our new heuristic.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…It is general enough to allow many variants for register optimisation methods: for instance, a variant may correspond to a particular shape of the reuse graph, or to a specific technique for computing it. It allows to model buffer optimisation problem (Ning and Gao, 1993), as well as rotating register files (Rau et al, 1992). Later, these two variants have been studied in (Touati and Eisenbeis, 2004) and will be compared to our new heuristic.…”
Section: Related Workmentioning
confidence: 99%
“…− Method 5 is a variant of (Rau et al, 1992). It starts by first pre-fixing an arbitrary Hamiltonian reuse circuit, then it minimises µ i,j .…”
Section: Frameworkmentioning
confidence: 99%
“…A rotating register file [3,13,16] is a hardware feature that moves (shift) implicitly architectural registers in a cyclic way. At every new kernel issue (special branch operation), each architectural register specified by program is mapped by hardware to a new physical register.…”
Section: Rotating Register Filesmentioning
confidence: 99%
“…Indeed, if we succeed in building a software pipelined schedule that does not produce more than R values simultaneously alive, then we can build a cyclic register allocation with R available registers [2,13]. We can use either loop unrolling [2], inserting move operations [7], or a hardware rotating register file when available [13] 2 . Therefore, a great amount of work tries to schedule a loop such that it does not use more than R values simultaneously alive [8,22,12,14,11,4,15,6,9].…”
Section: Introductionmentioning
confidence: 99%
“…In this case, the schedule is unfeasible and some actions must be taken in order to reduce the register pressure. Some possible solutions outlined in [25] and evaluated in [17] are:…”
Section: Introductionmentioning
confidence: 99%