RFR: 8142984: Zero: fast accessors should handle both getters and setters
Aleksey Shipilev
shade at openjdk.java.net
Thu Oct 22 09:27:18 UTC 2020
It started as removing the TODO item in `abstractInterpreter.cpp`. Zero is the only implementation that treats `accessor` to mean `getter`, which makes the awkward choice in the entry selection. After going back and forth (including trying to remove the fast accessor methods altogether in [JDK-8255066](https://bugs.openjdk.java.net/browse/JDK-8255066)), I settled on implementing the fast Zero `setter`-s too, plus renaming and whipping the existing `getter` code in shape. The end result seems to be more straight-forward than it was before.
On the plus side, it improves `make bootcycle-images` in release mode from ~47m40s to ~46m50s, because we are saving time doing the `normal_entry` for setters.
The "normal", non-Zero template interpreter is not affected, because it does not have any specializations for `accessor`, `getter` or `setter`, and instead just doing the normal entry.
Testing:
- [x] Linux x86_64 {fastdebug, release} Zero `make bootcycle-images`
- [x] Linux aarch64 {fastdebug, release} Zero `make bootcycle-images`
- [x] Linux x86_64 Zero release jcstress
- [x] Linux aarch64 Zero release jcstress
-------------
Commit messages:
- 8142984: Zero: fast accessors should handle both getters and setters
Changes: https://git.openjdk.java.net/jdk/pull/728/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=728&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8142984
Stats: 202 lines in 7 files changed: 97 ins; 38 del; 67 mod
Patch: https://git.openjdk.java.net/jdk/pull/728.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/728/head:pull/728
PR: https://git.openjdk.java.net/jdk/pull/728
More information about the hotspot-dev
mailing list