Intercepting functions for memoization

Arjun Suresh 1
1 ALF - Amdahl's Law is Forever
Inria Rennes – Bretagne Atlantique , IRISA-D3 - ARCHITECTURE
Abstract : We have proposed mechanisms to implement function memoization at a software level as part of our effort to improve sequential code performance. We have analyzed the potential of function memoization on applications and its performance gain on current architectures. We have proposed three schemes - a simple load time approach which works for any dynamically linked function, a compile time approach using LLVM framework which can enable memoization for any program function and also a hardware proposal for doing memoization in hardware and its potential benefits. Demonstration of the link time approach with transcendental functions showed that memoization is applicable and gives good benefit even under modern architectures and compilers (with the restriction that it can be applied only for dynamically linked functions). Our compile time approach extends the scope of memoization and also increases the benefit due to memoization. This works for both user defined functions as well as library functions. It can handle certain kind of non pure functions like those functions with pointer arguments and global variable usage. Hardware memoization lowers the threshold for a function to be memoized and gives more performance gain on average.
Document type :
Complete list of metadatas

Cited literature [44 references]  Display  Hide  Download
Contributor : Abes Star <>
Submitted on : Thursday, May 11, 2017 - 1:02:04 AM
Last modification on : Friday, January 11, 2019 - 1:52:56 PM
Long-term archiving on : Saturday, August 12, 2017 - 12:40:16 PM


Version validated by the jury (STAR)


  • HAL Id : tel-01410539, version 2


Arjun Suresh. Intercepting functions for memoization. Programming Languages [cs.PL]. Université Rennes 1, 2016. English. ⟨NNT : 2016REN1S106⟩. ⟨tel-01410539v2⟩



Record views


Files downloads