Quantitative evaluation of register pressure on software pipeline loops
Rights accessRestricted access - publisher's policy
Software Pipelining is a loop scheduling technique that extracts loop parallelism by overlapping the execution of several consecutive iterations. One of the drawbacks of software pipelining is its high register requirements, which increase with the number of functional units and their degree of pipelining. This paper analyzes the register requirements of software pipelined loops. It also evaluates the effects on performance of the addition of spill code. Spill code is needed when the number of registers required by the software pipelined loop is larger than the number of registers of the target machine. This spill code increases memory traffic and can reduce performance. Finally, compilers can apply transformations in order to reduce the number of memory accesses and increase functional unit utilization. The paper also evaluates the negative effect on register requirements that some of these transformations might produce on loops.
CitationLlosa, J.; Ayguade, E.; Valero, M. Quantitative evaluation of register pressure on software pipeline loops. "International journal of parallel programming", Febrer 1998, vol. 26, núm. 2, p. 121-142.
|Quantitative Ev ... ftware Pipelined Loops.pdf||Quantitative Evaluation of Register Pressure on Software Pipelined Loops||291.6Kb||Restricted access|