Results 1 -
7 of
7
Register allocation for programs in ssa-form
- In Compiler Construction 2006, volume 3923 of LNCS
, 2006
"... In this technical report, we present an architecture for register allocation on the SSA-form. We show, how the properties of SSA-form programs and their interference graphs can be exploited to develop new methods for spilling, coloring and coalescing. We present heuristic and optimal solution method ..."
Abstract
-
Cited by 20 (3 self)
- Add to MetaCart
In this technical report, we present an architecture for register allocation on the SSA-form. We show, how the properties of SSA-form programs and their interference graphs can be exploited to develop new methods for spilling, coloring and coalescing. We present heuristic and optimal solution methods for these three subtasks. 1
Efficient Global Register Allocation for Minimizing Energy Consumption
, 1999
"... Data referencing during program execution can be a signicant source of energy consumption especially for data-intensive programs. In this paper, we propose an approach to minimize such energy consumption by allocating data to proper registers and memory. Through careful analysis of boundary conditio ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Data referencing during program execution can be a signicant source of energy consumption especially for data-intensive programs. In this paper, we propose an approach to minimize such energy consumption by allocating data to proper registers and memory. Through careful analysis of boundary conditions between consecutive blocks, our approach eÆciently handles various control structures including branches, merges and loops, and achieves the allocation results beneting the whole program. The computational cost for solving the allocation problem is rather low comparing with known approaches while the quality of the results are very encouraging. 1 Introduction Today's high demand of portable electronic products makes low energy consumption as important as high speed and small area in computer system design. Even for non-portable high performance systems, lower power consumption design helps to decrease packing and cooling cost and increase the reliability of the systems [25]. A lot of r...
Demand-Driven Register Allocation
- ACM Trans. on Programming Lang. and Sys
, 1996
"... this paper was presented at the 1992 SIGPLAN Conference on Programming Language Design and Implementation. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the tit ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
this paper was presented at the 1992 SIGPLAN Conference on Programming Language Design and Implementation. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 2 \Delta upon good local allocation by eliminating unnecessary loads at the entrance to a basic block and by eliminating unnecessary stores at the exit from a basic block. An initial load of v is unnecessary if all predecessors exit with v in some register, and a terminal store of w is unnecessary if w is dead or all succeeding loads of w can be replaced with a reference to w's register. Of course we do not initially know which values will ultimately be allocated to registers, so we estimate each value's chances of ultimate register residence. At the basic block level, we know values loaded locally into a register and not overwritten have a 100% chance of exiting in a register. The likelihood of other values residing in a register on exit depends on their likelihood of residing in a register upon entrance, the number of unused registers in a block, and the pattern of local register usage. The likelihood that a value will be in a register upon entrance to a block depends on the likelihood it will exit in a register from all predecessor blocks. During global register allocation, we will model the competition between register candidates with estimates of the likelihood of register residence based on the demand for registers. Each instruction that requires a target ...
Exploring the structure of the space of compilation sequences using randomized search algorithms
- Proc of the 2004 Los Alamos Computer Science Institute (LACSI) Symposium
, 2004
"... Modern optimizing compilers apply a fixed sequence of optimizations, which we call a compilation sequence, to each program that they compile. These compilers let the user modify their behavior in a small number of specified ways, using command-line flags (e.g.,-O1,-O2,...). For five years, we have b ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Modern optimizing compilers apply a fixed sequence of optimizations, which we call a compilation sequence, to each program that they compile. These compilers let the user modify their behavior in a small number of specified ways, using command-line flags (e.g.,-O1,-O2,...). For five years, we have been working with compilers that automatically select an appropriate compilation sequence for each input program. These adaptive compilers discover a good compilation sequence tailored to the input program, the target machine, and a user-chosen objective function. We have shown, as have others, that program-specific sequences can produce better results than any single universal sequence [1, 23, 7, 10, 21] Our adaptive compiler looks for compilation sequences in a large and complex search space. Its typical compilation sequence includes 10 passes (with possible repeats) chosen from the 16 available—there are 16 10 or 1,099,511,627,776 such sequences. To learn about the properties of such spaces, we have studied subspaces that consist of 10 passes drawn from a set of 5 (5 10 or 9,765,625 sequences). These 10of-5 subspaces are small enough that we can analyze them thoroughly but large enough to reflect important properties of the full spaces. This paper reports, in detail, on our analysis of several of these subspaces and on the consequences of those observed properties for the design of search algorithms. 1 Compilation Sequences Compilers operate by applying a fixed sequence of optimizations, called a compilation sequence, to all programs. The compiler writer must select ten to twenty optimizations from the hundreds that have been pro-
Low Energy Register Allocation Beyond Basic Blocks
, 1999
"... An approach of doing register allocation beyond basic blocks for low energy is presented in this paper. With careful analysis of boundary conditions between consecutive blocks, our approach achieves the allocation results beneting the whole program. By doing the allocation block by block, we avoid e ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
An approach of doing register allocation beyond basic blocks for low energy is presented in this paper. With careful analysis of boundary conditions between consecutive blocks, our approach achieves the allocation results beneting the whole program. By doing the allocation block by block, we avoid excessive computational cost. 1 Introduction Today's high demand of portable electronic products makes low energy consumption as important as high speed and small area in computer system design. Even for non-portable high performance systems, lower power consumption design helps to decrease packing and cooling cost and increase the reliability of the systems [24]. A lot of research has been done in improving the power consumptions of various components in computer systems [8, 12, 18, 19, 24]. In particular, it is well recognized that access to dierent levels of storage components, such as register, cache, main memory and magnetic disk, diers dramatically in speed and power consumption [8,...
Reinforced Tabu Search for Graph Coloring
, 2007
"... Tabu search (TS) [21] was first applied to graph coloring by Hertz and de Werra in 1987 [23]. Even today, the original Tabucol algorithm as well as its variants are among the best reference algorithms for general graph coloring. In this paper, we describe a Reinforced TS (RTS) coloring algorithm and ..."
Abstract
- Add to MetaCart
Tabu search (TS) [21] was first applied to graph coloring by Hertz and de Werra in 1987 [23]. Even today, the original Tabucol algorithm as well as its variants are among the best reference algorithms for general graph coloring. In this paper, we describe a Reinforced TS (RTS) coloring algorithm and show improved results on the well-established Dimacs challenge graphs. The improvement is essentially achieved by employing more informative evaluation functions as well as an adaptive technique for tuning the tabu list. We show that RTS can equal the best-known results for many of the Dimacs graphs while remaining quite simple. 1

