The Intel Labs Haskell Research Compiler

被引:7
|
作者
Liu, Hai
Glew, Neal
Petersen, Leaf
Anderson, Todd A.
机构
关键词
Functional Language Compiler; Compiler Optimization; Haskell;
D O I
10.1145/2503778.2503779
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult to implement efficiently. GHC achieves good performance across a wide variety of programs via aggressive optimization taking advantage of the lack of side effects, and by targeting a carefully tuned virtual machine. The Intel Labs Haskell Research Compiler uses GHC as a frontend, but provides a new whole-program optimizing backend by compiling the GHC intermediate representation to a relatively generic functional language compilation platform. We found that GHC's external Core language was relatively easy to use, but reusing GHC's libraries and achieving full compatibility were harder. For certain classes of programs, our platform provides substantial performance benefits over GHC alone, performing 2x faster than GHC with the LLVM backend on selected modern performance-oriented benchmarks; for other classes of programs, the benefits of GHC's tuned virtual machine continue to outweigh the benefits of more aggressive whole program optimization. Overall we achieve parity with GHC with the LLVM backend. In this paper, we describe our Haskell compiler stack, its implementation and optimization approach, and present benchmark results comparing it to GHC.
引用
收藏
页码:105 / 116
页数:12
相关论文
共 50 条
  • [41] Exchanging Sources Between Clean and Haskell A Double-Edged Front End for the Clean Compiler
    van Groningen, John
    van Noort, Thomas
    Achten, Peter
    Koopman, Pieter
    Plasmeijer, Rinus
    ACM SIGPLAN NOTICES, 2010, 45 (11) : 49 - 60
  • [42] Intel's Array Building Blocks: A Retargetable, Dynamic Compiler and Embedded Language
    Newburn, Chris J.
    So, Byoungro
    Liu, Zhenying
    McCool, Michael
    Ghuloum, Anwar
    Du Toit, Stefanus
    Wang, Zhi Gang
    Du, Zhao Hui
    Chen, Yongjian
    Wu, Gansha
    Guo, Peng
    Liu, Zhanglin
    Zhang, Dan
    2011 9TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2011, : 224 - 235
  • [43] A research C# compiler
    Hanson, DR
    Proebsting, TA
    SOFTWARE-PRACTICE & EXPERIENCE, 2004, 34 (13): : 1211 - 1224
  • [44] An overview of the Open Research Compiler
    Wu, CY
    Lian, RQ
    Zhang, JC
    Ju, R
    Chan, S
    Liu, LX
    Feng, XB
    Zhang, ZQ
    LANGUAGES AND COMPILERS FOR HIGH PERFORMANCE COMPUTING, 2005, 3602 : 17 - 31
  • [45] LABS COLLABORATE ON ICF RESEARCH
    LINDL, JD
    CRAY, M
    PHYSICS TODAY, 1995, 48 (10) : 104 - 104
  • [46] Groundbreaking research in Swiss labs
    不详
    IEEE COMMUNICATIONS MAGAZINE, 2001, 39 (01) : 36 - 36
  • [47] LABS FOR RESEARCH AT ULTRALOW TEMPERATURES
    不详
    CHEMICAL & ENGINEERING NEWS, 1986, 64 (25) : 8 - 8
  • [48] COMMENT ON ANIMAL RESEARCH LABS
    ROBINSON, DN
    AMERICAN PSYCHOLOGIST, 1990, 45 (11) : 1269 - 1269
  • [49] LAYOFFS BEGIN AT RESEARCH LABS
    NORMAN, C
    SCIENCE, 1989, 246 (4933) : 1000 - 1000
  • [50] Bringing research into teaching labs
    Arnaud, Celia Henry
    CHEMICAL & ENGINEERING NEWS, 2016, 94 (11) : 30 - 31