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

Zero: Implement fast bytecodes

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b24
    • CPU:
      generic
    • OS:
      generic

      Description

      http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-February/008449.html

      The following change implements support for the following fast-bytecodes
      in the Zero interpreter:

      fast_agetfield
      fast_bgetfield
      fast_cgetfield
      fast_dgetfield
      fast_fgetfield
      fast_igetfield
      fast_lgetfield
      fast_sgetfield
      fast_aputfield
      fast_bputfield
      fast_cputfield
      fast_dputfield
      fast_fputfield
      fast_iputfield
      fast_lputfield
      fast_sputfield
      fast_aload_0
      fast_iaccess_0
      fast_aaccess_0
      fast_faccess_0
      fast_iload
      fast_iload2
      fast_icaload
      fast_invokevfinal

      All together this leads to a speedup of the interpreter of about 25%.

      Some notes:
      - I extracted the JVMTI related blocks into a macro to avoid repetition.
      - The field get/put opcodes are only rewritten for non-volatile
      non-static field access, this makes the fast one really fast (no
      additional branches needed), and static/volatile field accesses seem
      rare enough anyway.

      http://cr.openjdk.java.net/~rkennke/zero-fast-opcodes/webrev.00/


      Opinions? Can this be included in hotspot? And Can I have a bug-ID?

      Best regards,
      Roman

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              shade Aleksey Shipilev
              Reporter:
              twisti Christian Thalinger
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: