34 lines
874 B
Plaintext
34 lines
874 B
Plaintext
|
.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
|
||
|
.]]).
|