-
Enhancement
-
Resolution: Fixed
-
P4
-
11, 17, 18
-
b24
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8299549 | 17.0.7 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
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
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
- backported by
-
JDK-8299549 Zero: Implement fast bytecodes
- Resolved
- relates to
-
JDK-8277485 Zero: Fix _fast_{i,f}access_0 bytecodes handling
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/a395cf72
-
Commit openjdk/jdk/e4362007
-
Review openjdk/jdk17u-dev/924
-
Review openjdk/jdk/1938
(1 links to)