.bp .NH 1 Register Allocation .NH 2 Introduction .PP The efficient usage of the general purpose registers of the target machine plays a key role in any optimizing compiler. This subject, often referred to as \fIRegister Allocation\fR, has great impact on both the code generator and the optimizing part of such a compiler. The code generator needs registers for at least the evaluation of arithmetic expressions; the optimizer uses the registers to decrease the access costs of frequently used entities (such as variables). The design of an optimizing compiler must pay great attention to the cooperation of optimization, register allocation and code generation. .PP Register allocation has received much attention in literature (see .[ leverett register allocation compilers .] .[ chaitin register coloring .] .[ freiburghouse usage counts .] and .[~[ sites register .]]).