RFR: 8305959: x86: Improve itable_stub [v3]

Boris Ulasevich bulasevich at openjdk.org
Thu Jun 1 14:51:42 UTC 2023


> Async profiler shows that applications spend up to 10% in itable_stubs.
> 
> The current inefficiency of itable stubs is as follows. The generated itable_stub scans itable twice: first it checks if the object class is a subtype of the resolved_class, and then it finds the holder_class that implements the method. I suggest doing this in one pass: with a first loop over itable, check pointer equality to both holder_class and resolved_class. Once we have finished searching for resolved_class, continue searching for holder_class in a separate loop if it has not yet been found.
> 
> This approach gives 1-10% improvement on the synthetic benchmarks and 3% improvement on Naive Bayes benchmark from the Renaissance Benchmark Suite (Intel Xeon X5675).

Boris Ulasevich has updated the pull request incrementally with one additional commit since the last revision:

  Apply suggestions from code review
  
  Co-authored-by: Aleksey Shipilëv <shipilev at amazon.de>

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/13460/files
  - new: https://git.openjdk.org/jdk/pull/13460/files/7a259831..0ef7fd9c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13460&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13460&range=01-02

  Stats: 5 lines in 1 file changed: 1 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/13460.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13460/head:pull/13460

PR: https://git.openjdk.org/jdk/pull/13460


More information about the hotspot-dev mailing list