Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Value reuse optimization: reuse of evaluated math library function calls through compiler generated cache

Published: 01 August 2003 Publication History
  • Get Citation Alerts
  • Abstract

    Value reuse technique eliminates the redundant evaluation of expressions, using the support of hardware at runtime to eliminate them. The potential performance of a value reuse mechanism not only depends on the number of instances it has eliminated, but as well as on the time spent in detecting the instance to be eliminated. In order to have better value reuse, we move from instruction level reuse to function reuse, so that one can detect more eliminative instances with reasonable effort. This removes the extra time spent on detecting the possibility of instruction execution elimination. The results of the mathematical library functions evaluated can be reused. Since they can be treated as instructions, i,e. functions which do not have side-effects with the application, one can eliminate the function call itself. In this paper, we propose a Technique to re-use the evaluated values for math library functions. Execution time is decreased up to 6%. Reduction in the number of calls due to instrumentation of code for function reuse for math library routines is up to 99% at a particular call-site in the application

    References

    [1]
    Aho A. V., Sethi R., Ullman J. D. Compilers: Principles, Techniques, and Tools., Addison- Wesley, 1986.
    [2]
    Avinash Sodani, Gurindar S. Sohi Dynamic Instruction Reuse Comm, ACM 22(2):96--103, February 1976.
    [3]
    Mikko H. Lipasti and Christopher B. Wilkerson and John Paul Shen, "Value Locality and Load Value Prediction", Architectural Support for Programming Languages and Operating Systems, 1996. pages 138--147, http://citeseer.nj.nec.com/lipasti96value.html
    [4]
    Bacon D. F., Graham S. L., Compiler transformations for high-performance computing, ACM Computin Surveys, Vol. 26, No. 4, 345--420, December 1994.
    [5]
    B. Calder and P. Feller and A. Eustace Value Profiling and Optimization Journal of Instruction Level Parallelism, 1999. http://citeseer.nj.nec.com/calder99value.html
    [6]
    Jian Huang Improving Processor Performance Through Compiler Assisted Block Reuse Phd Thesis, Univ of Minnesota, Twin Cities, 2000.
    [7]
    Bodik R., Gupta R., Soffa M. L., Complete removal of redundant expressions Proceeding of the ACM Conference on Programming Language Design and Implementation, 1--14, ACM Press 1998.
    [8]
    Jian Huang, David J. Lilja Exploring Sub-Block Value Reuse for Superscalar Processors In proceedings of 2000 International Conference on Parallel Architectures and Compilation Techniques (PACT'00) October 15-19, 2001 Philadelphia, Pennsylvania, pg 100.
    [9]
    John Hughes Lazy Memo-functions In the proceedings of FPCA 1985. pages 129--146.
    [10]
    Allan Heydon, Roy Levin and Yuan Yu Caching function calls using precise dependencies ACM
    [11]
    S. E. Richardson. Caching Function Results: Faster arithmetic by avoiding unnecessary computation. Technical Report SMLTR-92-1, Sun Microsystems Laboratories, Spet. 1992
    [12]
    S. P. Harbison. An architectural alternative to optimizing compilers. In Proc. International Conference on Architectural Support for programming Languages and Operating System(ASPLOS), page 57 65, Mar. 1982.
    [13]
    D. M. Dhamdhere, H. Patil An elimination algorithm for bi-directional data ow problems using edge placement In Proc. ACM Transactions on Programming Languages and Systems, vol. 15 (1993), 312--336.
    [14]
    W. Pugh and T. Teitelbaum. Incremental computation via function caching. In conference Record of the 16th Annual Symposium on POPL, pages 315--328, Jan 1989.
    [15]
    Arun Chauhanachauhan and Ken Kennedy Optimizing Strategies for Telescoping Languages: Procedure Strength Reduction and Procedure in the Proceedings of the 15th ACM International Conference on Supercomputing, June 16-21, 2001, Sorrento, Naples, Italy.
    [16]
    Torben. Mogensen, Peter Sestoft Partial Evaluation. in Encyclopedia of Computer Science and Technology, pages 247--279, volume 37, year 1997.
    [17]
    Umut A. Acar, Guy E. Blelloch and Robert Harper Selective Memorization in the proceedings of the POPL'03, January 15-17, 2003.

    Cited By

    View all
    • (2018)Accelerating error-tolerant applications with approximate function reuseScience of Computer Programming10.1016/j.scico.2017.05.003165(54-67)Online publication date: Nov-2018
    • (2016)The Potential of Accelerating Image-Processing Applications by Using Approximate Function Reuse2016 VI Brazilian Symposium on Computing Systems Engineering (SBESC)10.1109/SBESC.2016.026(122-127)Online publication date: Nov-2016
    • (2014)An optimization-based approach to lookup table program transformationsJournal of Software: Evolution and Process10.1002/smr.162026:6(533-551)Online publication date: 1-Jun-2014
    • Show More Cited By

    Index Terms

    1. Value reuse optimization: reuse of evaluated math library function calls through compiler generated cache
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 8
      August 2003
      67 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/944579
      Issue’s Table of Contents

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 01 August 2003
      Published in SIGPLAN Volume 38, Issue 8

      Check for updates

      Author Tags

      1. Compilers Optimization
      2. Function Cache
      3. Function reuse
      4. Instruction reuse

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0

      Other Metrics

      Citations

      Cited By

      View all
      • (2018)Accelerating error-tolerant applications with approximate function reuseScience of Computer Programming10.1016/j.scico.2017.05.003165(54-67)Online publication date: Nov-2018
      • (2016)The Potential of Accelerating Image-Processing Applications by Using Approximate Function Reuse2016 VI Brazilian Symposium on Computing Systems Engineering (SBESC)10.1109/SBESC.2016.026(122-127)Online publication date: Nov-2016
      • (2014)An optimization-based approach to lookup table program transformationsJournal of Software: Evolution and Process10.1002/smr.162026:6(533-551)Online publication date: 1-Jun-2014
      • (2006)Dynamic reuse of subroutine resultsJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2006.06.00252:10(603-608)Online publication date: 1-Oct-2006

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media