Integrated: 8285487: AArch64: Do not generate unneeded trampolines for runtime calls

Evgeny Astigeevich duke at openjdk.org
Wed Sep 7 14:42:57 UTC 2022


On Tue, 26 Apr 2022 16:14:44 GMT, Evgeny Astigeevich <duke at openjdk.org> wrote:

> Runtime calls are calls of non-compiled methods. Non-compiled methods stay forever in CodeCache. If they are always within the branch range, they don't need trampolines.
> 
> This PR adds `is_always_within_branch_range(Address entry)`.
> 
> Results from DaCapo: the total number of eliminated trampolines per a benchmark run
> 
> 
> +----------+--------+
> | avrora   |  15491 |
> | batik    |  75837 |
> | biojava  |  13927 |
> | eclipse  | 414143 |
> | fop      | 119267 |
> | graphchi |   7665 |
> | jme      |   8279 |
> | luindex  |  56061 |
> | lusearch |  50277 |
> | pmd      | 132719 |
> | sunflow  |  10689 |
> | tomcat   | 186967 |
> | xalan    |  50349 |
> | zxing    |  41497 |
> +----------+--------+
> 
> 
> 
> Testing:
> - `tier1`...`tier2`: Passed
> - `compiler/c2/aarch64/TestTrampoline.java`: Passed
> 
> Note: `compiler/c2/aarch64/TestTrampoline.java` requires the release build. This is because debug builds have the branch range set to 2M which causes always generation of trampolines.

This pull request has now been integrated.

Changeset: 6ff4775b
Author:    Evgeny Astigeevich <eastig at amazon.com>
Committer: Andrew Haley <aph at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/6ff4775b717d91f9acf24d014ae155dfacac06c5
Stats:     151 lines in 2 files changed: 135 ins; 15 del; 1 mod

8285487: AArch64: Do not generate unneeded trampolines for runtime calls

Reviewed-by: xliu, aph

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

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


More information about the hotspot-dev mailing list