skip to main content
article

An anomaly in an interpreter using GCC source-code-level register allocation

Authors Info & Claims
Published:01 April 2007Publication History
Skip Abstract Section

Abstract

An anomaly of unexpected performance in an interpreter whose frequently accessed variables are manually assigned to hard registers by GCC source-code-level register allocation is presented. A hard-registered virtual program counter and stack pointer as well as a byte-code translation are experimented on both register-rich PowerPC and register-limited Intel x86. According to the study of the anomaly, a hard register should not be assigned singly to a variable in an interpreter due to higher register pressure.

References

  1. Using and Porting GNU CC - Defining Global Register Variables. Available at http://gcc.gnu.org/onlinedocs/gcc/Google ScholarGoogle Scholar
  2. Gforth. Available at http://www.gnu.org/software/gforth/Google ScholarGoogle Scholar
  3. Objective Caml. Available at http://caml.inria.fr/ocaml/Google ScholarGoogle Scholar
  4. Ren-Jie Lo, "A New Approach to Bytecode Translation for Accelerating Java Interpreters," Master thesis, Dept. Engineering Science, National ChengKung University, 2005.Google ScholarGoogle Scholar
  5. Fuh-Gwo Chen and Ting-Wei Hou, "Instruction-coated Translation: An Approach to Restructure Directly Threaded Interpreters with Low Cohesion," ACM SIGPLAN Notices, vol. 41, Aug. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. JamVM Web Pages. Available at http://jamvm.sourceforge.net/Google ScholarGoogle Scholar
  7. SPEC JVM98. Available at http://www.spec.org/osg/jvm98/Google ScholarGoogle Scholar
  8. PowerPC. Available at http://www.power.org/Google ScholarGoogle Scholar
  9. Intel Processors. Available at http://www.intel.com/Google ScholarGoogle Scholar
  10. James. R. Bell, "Threaded Code," in Communications of the ACM, vol. 16: ACM Press, 1973, pp. 370--372. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An anomaly in an interpreter using GCC source-code-level register allocation

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Article Metrics

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

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!