Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8074457

Remove the non-Zero CPP Interpreter

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • 9
    • hotspot
    • None
    • b103


      There are 3 types of interpreters in hotspot currently.

      1. The "Template" interpreter, which uses platform specific code to set up frames, encode a dispatch table and encode actions for each bytecode.
      2. The "Zero" interpreter, which uses no platforms specific code to set up frames and uses C++ dispatch to and execute each bytecode.
      3. The "C++" interpreter, which uses platform specific code to set up frames and uses C++ code to dispatch to and execute each bytecode.

      (cut/paste from Bertrand email)
      Zero and the C++ interpreter use the same interpreter loop but the C++ interpreter relies on CPU dependent dynamically generated glue. It also depends on the stack walking code in our CPU directories, making that code even more complex than what it currently is (in addition to the fact that it has not been maintained for a long time). I tend to agree with Coleen when she said that the C++ interpreter is probably not worth resurrecting.

      The third interpreter technology has been bit rotting in the code for a while and should be removed. There is glue code for each cpu platform.

      % wc -l cpp*
         38 cppInterpreterGenerator_x86.hpp
       2314 cppInterpreter_x86.cpp
         38 cppInterpreter_x86.hpp
       2390 total

      In addition to this code there is also #ifdef CC_INTERP conditionals in the platform specific code.

      % grep -r CC_INTERP | wc -l
      96

      Be careful though because CC_INTERP is also used for the Zero interpreter.

      Also, the C++ interpreter brought with it an odd class hierarchy that could be cleaner (maybe follow-up RFE).

            coleenp Coleen Phillimore
            coleenp Coleen Phillimore
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: