RFR: 8142984: Zero: fast accessors should handle both getters and setters [v2]
Aleksey Shipilev
shade at openjdk.java.net
Wed Oct 28 09:56:31 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
Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit:
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=01
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