[RFC] Fast-bytecodes for Zero

Roman Kennke rkennke at redhat.com
Wed Feb 13 11:40:20 PST 2013


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




More information about the hotspot-dev mailing list