625-638 Modulo Scheduling with Reduced Register Pressure Josep Llosa, Mateo Valero, Eduard Ayguad , Antonio Gonz lez Abstract Software pipelining is a scheduling technique that is used by some product compilers in order to expose more instruction level parallelism out of innermost loops.
Modulo scheduling refers to a class of algorithms for software pipelining.
The register pressure increases as the instruction level parallelism increases. Therefore, the register pressure has an important impact on the performance of a schedule. This paper presents a novel heuristic modulo scheduling strategy that tries to generate schedules with the lowest II, and, from all the possible schedules with such II, it tries to select that with the lowest register requirements. The proposed method has been implemented in an experimental compiler and has been tested for the Perfect Club benchmarks. The results show that the proposed method achieves an optimal II for at least 97.5 percent of the loops and its compilation time is comparable to a conventional top-down approach, whereas the register requirements are lower.