ACM Home Page
Please provide us with feedback. Feedback
Efficiently compiling a functional language on AMD64: the HiPE experience
Full text PdfPdf (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
Daniel Luna  Uppsala University, Sweden
Mikael Pettersson  Uppsala University, Sweden
Konstantinos Sagonas  Uppsala University, Sweden
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 29,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1069774.1069791
What is a DOI?

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

Collaborative Colleagues:
Daniel Luna: colleagues
Mikael Pettersson: colleagues
Konstantinos Sagonas: colleagues