Click on the title to obtain a gzip-ed PostScript version of the paper (97K).
Abstract:
In the context of an optimizing native code compiler for the
concurrent functional programming language \erlang{}, we experiment
with various register allocation schemes focusing on the recently
proposed \emph{linear scan register allocator}. We describe its
implementation and extensively report on its behaviour both on
register-rich and on register-poor architectures. We also
investigate how different options to the basic algorithm and to the
compilation process as a whole affect compilation time and quality
of the produced code.
Overall, the linear scan register allocator is a good choice on
register-rich architectures; when compilation time is a concern, it
can also be a viable option on register-poor architectures.