Article

The Meeting Graph: A New Framework for Loop Register Allocation

11/1996;
Source: CiteSeer

ABSTRACT : 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 ...

0 Bookmarks
 · 
139 Views
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Register allocation is a compiler phase in which 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. 1 Introduction The efficiency of register allocation is a crucial problem in modern microprocessors, where the increasing gap between the internal clock cycle and memory latency exacerbates the need to keep the variables in registers and to avoid spill code. In this paper, we address the important problem of loop register allocation and s...
    11/1995;

Full-text (2 Sources)

Download
41 Downloads
Available from
May 31, 2014