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