The Meeting Graph: A New Framework for Loop Register Allocation

Source: CiteSeer
: Register allocation is a compiler phase where the gains can be essential in achieving performance on new architectures exploiting instruction level parallelism. We focus our attention on loops and improve the existing methods by introducing a new kind of graph. We model loop unrolling and register allocation together in a common framework, called the meeting graph. We expect that our results improve significantly loop register allocation while keeping the amount of code replication low. As a byproduct, we present an optimal algorithm for allocating loop variables to a rotating register file, as well as a new heuristic for loop variables spilling. Key-words: register allocation, loop optimization, instruction-level parallelism, graph decomposition, graph coloring (R'esum'e : tsvp) Ce travail a 'et'e partiellement financ'e par le projet Esprit #5399 COMPARE Unité de recherche INRIA Rocquencourt Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France) Téléphone : (33 ...


Available from: Christine Eisenbeis, Nov 16, 2012