Title
Register Constrained Modulo Scheduling
Abstract
Abstract--Software pipelining is an instruction scheduling technique that exploits the instruction level parallelism (ILP) available in loops by overlapping operations from various successive loop iterations. The main drawback of aggressive software pipelining techniques is their high register requirements. If the requirements exceed the number of registers available in the target architecture, some steps need to be applied to reduce the register pressure (incurring some performance degradation): reduce iteration overlapping or spilling some lifetimes to memory. In the first part of this paper, we propose a set of heuristics to improve the spilling process and to better decide between adding spill code or directly decreasing the execution rate of iterations. The experimental evaluation, over a large number of representative loops and for a processor configuration, reports an increase in performance by a factor of 1.29 and a reduction of memory traffic by a factor of 1.36. In the second part of this paper, we analyze the use of backtracking and propose a novel approach for simultaneous instruction scheduling and register spilling in modulo scheduling: MIRS (Modulo Scheduling with Integrated Register Spilling). The experimental evaluation reports an increase in performance by a factor of 1.46 and a reduction of the memory traffic by a factor of 1.66 (or an additional 1.13 and 1.22 with regard to the proposal in the first part of the paper). These improvements are achieved at the expense of a reasonable increase in the compilation time.
Year
DOI
Venue
2004
10.1109/TPDS.2004.1278099
IEEE Trans. Parallel Distrib. Syst.
Keywords
DocType
Volume
register spilling,modulo scheduling,experimental evaluation,memory traffic,performance degradation,high register requirement,register constrained modulo scheduling,reasonable increase,instruction level parallelism,register pressure,instruction scheduling technique,instruction sets,graph theory,resource allocation,backtracking,indexing terms,scheduling algorithm,software pipelining,register allocation,instruction scheduling,computer architecture,degradation,registers,production,application software
Journal
15
Issue
ISSN
Citations 
5
1045-9219
11
PageRank 
References 
Authors
0.63
27
4
Name
Order
Citations
PageRank
Javier Zalamea11388.87
Josep Llosa257439.30
Eduard Ayguadé32406216.00
Mateo Valero44520355.94