| Efficiently compiling a functional language on AMD64: the HiPE experience |
| Full text |
Pdf
(287 KB)
|
| Source
|
International Conference on Principles and Practice of Declarative Programming
archive
Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
table of contents
Lisbon, Portugal
Pages: 176 - 186
Year of Publication: 2005
ISBN:1-59593-090-6
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 2, Downloads (12 Months): 29, Citation Count: 0
|
|
|
ABSTRACT
We describe and document our experience from developing an AMD64 backend for the HiPE (High Performance Erlang) native code compiler. We consider implementation alternatives and critically examine design choices for obtaining an efficient AMD64 backend. In particular, we consider in detail how other functional language implementors can migrate their existing x86 backends to the AMD64 architecture, a platform which is becoming increasingly important these days. We mention backend components that can be shared between x86 and AMD64, and those that better be different for achieving high performance on AMD64. Finally, we measure the performance of several different alternatives in the hope that this information can save development effort for others who intend to engage in a similar feat.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AMD Corporation. AMD64 Architecture Programmer's Manual, Sept. 2003. Publication # 24592, 24593, 24594, 26568, 26569.
|
| |
2
|
AMD Corporation. Software Optimization Guide for AMD AthlonTM 64 and AMD OpteronTM 64 Processors, Sept. 2003. Publication # 25112, Revision 3.03.
|
 |
3
|
|
 |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
J. Hubička. Porting GCC to the AMD64 architecture. In Proceedings of the GCC Developers Summit, pages 79--105, May 2003.
|
| |
8
|
J. Hubička, A. Jaeger, and M. Mitchell. System V Application Binary Interface, AMD64 Architecture Processor Supplement. See www.x86-64.org.
|
| |
9
|
E. Johansson, M. Pettersson, K. Sagonas, and T. Lindgren. The development of the HiPE system: Design and experience report. Springer International Journal of Software Tools for Technology Transfer, 4(4):421--436, Aug. 2003.
|
| |
10
|
X. Leroy et al. The Objective Caml system release 3.07. INRIA, Sept. 2003. See also http://caml.inria.fr/ocaml/.
|
| |
11
|
T. Lindahl and K. Sagonas. Unboxed compilation of oating point arithmetic in a dynamically typed language environment. In R. Pe~na and T. Arts, editors, Implementation of Functional Languages: Proceedings of the 14th International Workshop, volume 2670 of LNCS, pages 134--149. Springer, Sept. 2002.
|
| |
12
|
M. Pettersson. Linux performance-monitoring counters kernel extension. Available from: http://user.it.uu.se/~mikpe/linux/perfctr/.
|
| |
13
|
|
 |
14
|
|
| |
15
|
K. Sagonas and E. Stenman. Experimental evaluation and improvements to linear scan register allocation. Software Practice and Experience, 33(11):1003--1034, Sept. 2003.
|
| |
16
|
|
 |
17
|
|
|