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

Evgeny Astigeevich duke at openjdk.org
Wed Aug 10 16:10:14 UTC 2022


> [JDK-8280872](https://bugs.openjdk.java.net/browse/JDK-8280872) put the non-nmethod segment between two others. It made trampolines for runtime calls redundant in most cases.
> 
> This PR uses `target_needs_far_branch()` for runtime calls to check whether they need trampolines. Trampolines are not generated if they are not needed.
> 
> Testing:
> - `tier1`...`tier4`: 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 with a new target base due to a merge or a rebase. The pull request now contains eight commits:

 - Add is_always_reachable(entry)
 - Merge branch 'master' into JDK-8285487
 - Merge branch 'master' into JDK-8285487
 - Merge branch 'master' into JDK-8285487
 - Move code of target_needs_trampoline inside trampoline_call
 - XX:ReservedCodeCacheSize=130M for test and update comments
 - Remove debug code
 - 8285487: Do not generate trampolines for runtime calls if they are not needed

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

Changes: https://git.openjdk.org/jdk/pull/8403/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=8403&range=03
  Stats: 161 lines in 2 files changed: 145 ins; 15 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-dev mailing list