RFR: 8280152: AArch64: Reuse runtime call trampolines [v8]

Paul Hohensee phh at openjdk.org
Wed Aug 17 17:28:16 UTC 2022


On Tue, 16 Aug 2022 04:56:34 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.
>
> Yi-Fan Tsai has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains ten commits:
> 
>  - Merge branch 'master' of https://github.com/yftsai/jdk into JDK-8280152
>  - Grow hashtable only if a new entry is added
>  - Merge branch 'master' of https://github.com/yftsai/jdk into JDK-8280152
>  - Reduce maximum hash table size and cleanup
>  - Use ResizeableResourceHashtable
>  - Use a hash table to deduplicate
>  - Rename variables
>  - Remove dead codes
>  - Reuse runtime call trampolines

There may be a race in initializing _shared_trampoline_requests in codeBuffer_aarch64.cpp with multiple compiler threads. Please investigate and file a JBS issue if so. Lgtm for now.

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

Marked as reviewed by phh (Reviewer).

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


More information about the hotspot-dev mailing list