RFR: 8285487: AArch64: Do not generate unneeded trampolines for runtime calls [v7]

Evgeny Astigeevich duke at openjdk.org
Tue Aug 16 12:54:27 UTC 2022


> 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.

Evgeny Astigeevich has updated the pull request incrementally with one additional commit since the last revision:

  Always generate trampolines for calles outside CodeCache

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/8403/files
  - new: https://git.openjdk.org/jdk/pull/8403/files/55872c47..1165b85e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=8403&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=8403&range=05-06

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

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


More information about the hotspot-compiler-dev mailing list