Skip to Main content Skip to Navigation
Conference papers

SIRA: Schedule Independent Register Allocation for Software Pipelining

Sid Touati 1 Christine Eisenbeis 1 
1 A3 - Advanced analysis to code optimization
UP11 - Université Paris-Sud - Paris 11, Inria Saclay - Ile de France
Abstract : The register allocation in loops is generally carried out after or during the software pipelining process. This is because doing the register allocation at first step without assuming a schedule lacks the information of interferences between values live ranges. The register allocator introduces extra false dependencies which reduces dramatically the original ILP (Instruction Level Parallelism). In this paper, we give a new formulation to carry out the register allocation before the scheduling process, directly on the data dependence graph by inserting some anti dependencies arcs (reuse edges). This graph extension is first constrained by minimizing the critical cycle and hence minimizing the ILP loss due to the register pressure. The second constraint is to ensure that there is always a cyclic register allocation with the set of available registers, and this for any software pipelining of the new graph. We give the exact formulation of this problem with linear integer programming.
Document type :
Conference papers
Complete list of metadata

Cited literature [27 references]  Display  Hide  Download
Contributor : Sid Touati Connect in order to contact the contributor
Submitted on : Thursday, December 1, 2011 - 3:27:02 PM
Last modification on : Sunday, June 26, 2022 - 11:54:57 AM
Long-term archiving on: : Friday, March 2, 2012 - 2:30:50 AM


Files produced by the author(s)


  • HAL Id : hal-00647138, version 1



Sid Touati, Christine Eisenbeis. SIRA: Schedule Independent Register Allocation for Software Pipelining. Workshop on Compilers for Parallel Computers, Jun 2001, Edinburgh, United Kingdom. ⟨hal-00647138⟩



Record views


Files downloads