RFR: 8280152: AArch64: Reuse runtime call trampolines in C2
Nick Gasson
ngasson at openjdk.org
Thu Jul 7 08:55:32 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 38:
> 36: }
> 37:
> 38: template <typename MacroAssembler>
Why does this need to be a template? It seems to only ever be instantiated with one concrete class (the real MacroAssembler).
-------------
PR: https://git.openjdk.org/jdk/pull/9405
More information about the hotspot-dev
mailing list