RFR: 8280152: AArch64: Reuse runtime call trampolines in C2
Andrew Haley
aph at openjdk.org
Thu Jul 7 12:30:41 UTC 2022
On Thu, 7 Jul 2022 04:10:57 GMT, Yi-Fan Tsai <duke at openjdk.org> wrote:
> A trampoline stub could be generated for each runtime call. These trampolines could be duplication if the callees are the same. This change delays the stub generation and generates one stub for a distinct callee.
>
> Benchmark als, chi-square, dec-tree, gauss-mix, log-regression, movie-lens, naive-bayes, page-rank, fj-means, reactors, future-genetic, mnemonics, dotty, scala-kmeans, and finagle-http in Renaissance (0.14.1) are tested. The sum of the used size of CodeHeap 'non-profiled nmethods' and CodeHeap 'profiled nmethods' shows ~4.7% reduction on average.
src/hotspot/cpu/aarch64/codeBuffer_aarch64.cpp line 52:
> 50: }
> 51: };
> 52: requests->sort(by_dest);
While undoubtedly correct, the approach of sorting the requests then deleting duplicates is too heavyweight for this application. A hash table with linear probing (and chaining for calls to the same destination) would be a simple way to solve the problem.
-------------
PR: https://git.openjdk.org/jdk/pull/9405
More information about the hotspot-dev
mailing list