Title
Improved spill code generation for software pipelined loops
Abstract
Software pipelining is a loop scheduling technique that extractsparallelism out of loops by overlapping the execution of severalconsecutive iterations. Due to the overlapping of iterations, schedules impose high register requirements during their execution. A schedule is valid if it requires at most the number of registers available in the target architecture. If not, its register requirementshave to be reduced either by decreasing the iteration overlapping or by spilling registers to memory. In this paper we describe a set of heuristics to increase the quality of register-constrained modulo schedules. The heuristics decide between the two previous alternatives and define criteria for effectively selecting spilling candidates. The heuristics proposed for reducing the register pressure can be applied to any software pipelining technique. The proposals are evaluated using a register-conscious software pipeliner on a workbench composed of a large set of loops from the Perfect Club benchmark and a set of processor configurations. Proposals in this paper are compared against a previous proposal already described in the literature. For one of these processor configurations and the set of loops that do not fit in the available registers (32), a speed-up of 1.68 and a reduction of the memory traffic by a factor of 0.57 are achieved with an affordable increase in compilation time. For all the loops, this represents a speed-up of 1.38 and a reduction of the memory traffic by a factor of 0.7.
Year
DOI
Venue
2000
10.1145/349299.349319
Sigplan Notices
Keywords
Field
DocType
spilling register,large set,memory traffic,software pipelined loop,register requirementshave,high register requirement,register-conscious software pipeliner,processor configuration,improved spill code generation,software pipelining,register pressure,available register,code generation,register allocation,instruction level parallelism
Programming language,Software pipelining,Register allocation,Computer science,Parallel computing,Real-time computing,Code generation,Schedule,Software,Heuristics,Processor register,Loop scheduling
Conference
Volume
Issue
ISSN
35
5
0362-1340
ISBN
Citations 
PageRank 
1-58113-199-2
13
0.81
References 
Authors
19
4
Name
Order
Citations
PageRank
Javier Zalamea11388.87
Josep Llosa257439.30
Eduard Ayguadé32406216.00
Mateo Valero44520355.94