Pointers in the AMD64 architecture contain unused space, a feature often exploited by modern programming language implementations. We use this property in a defunctionalizing compiler for a subset of Haskell, generating fast programs having a compact memory representation of their runtime structures. We demonstrate that, in most cases, the compact representation is faster, uses less memory and has better cache characteristics. Our prototype shows competitive performance when compared to GHC with full optimizations on.
Bibtex: Fourtounis and Papaspyrou (2014)
Georgios Fourtounis and Nikolaos Papaspyrou. An efficient representation for lazy constructors using 64-bit pointers. In Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computing, 23–30. ACM, 2014. ↩