%0 Conference Proceedings %T Compile-Time Function Memoization %+ Ohio State University [Columbus] (OSU) %+ Pushing Architecture and Compilation for Application Performance (PACAP) %A Suresh, Arjun %A Rohou, Erven %A Seznec, André %< avec comité de lecture %B 26th International Conference on Compiler Construction %C Austin, United States %8 2017-02-05 %D 2017 %K optimization %K memoization %K performance %K instruction set extension %Z Computer Science [cs]/Other [cs.OH]Conference papers %X Memoization is the technique of saving the results of computations so that future executions can be omitted when the same inputs repeat. Recent work showed that memoization can be applied to dynamically linked pure functions using a load-time technique and results were encouraging for the demonstrated transcendental functions. A restriction of the proposed framework was that memo-ization was restricted only to dynamically linked functions and the functions must be determined beforehand. In this work, we propose function memoization using a compile-time technique thus extending the scope of memoization to user defined functions as well as making it transparently applicable to any dynamically linked functions. Our compile-time technique allows static linking of memo-ization code and this increases the benefit due to memoization by leveraging the inlining capability for the memoization wrapper. Our compile-time analysis can also handle functions with pointer parameters , and we handle constants more efficiently. Instruction set support can also be considered, and we propose associated hardware leading to additional performance gain. %G English %2 https://inria.hal.science/hal-01423811/document %2 https://inria.hal.science/hal-01423811/file/memo.pdf %L hal-01423811 %U https://inria.hal.science/hal-01423811 %~ UNIV-RENNES1 %~ CNRS %~ INRIA %~ UNIV-UBS %~ INSA-RENNES %~ INRIA-RENNES %~ IRISA %~ IRISA_SET %~ OPENAIRE %~ INRIA_TEST %~ TESTALAIN1 %~ INRIA2 %~ UR1-HAL %~ UR1-MATH-STIC %~ UR1-UFR-ISTIC %~ INRIA2017 %~ TEST-UNIV-RENNES %~ TEST-UR-CSS %~ UNIV-RENNES %~ INRIA-RENGRE %~ UR1-MATH-NUM %~ INRIA-ETATSUNIS