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

Andrew Haley aph at openjdk.org
Wed Sep 7 14:13:44 UTC 2022


On Tue, 16 Aug 2022 13:09:26 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.
>
> Evgeny Astigeevich has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Simplify checks in is_always_within_branch_range

Looks good. Sorry for the delay, I thought I'd already approved this patch.

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

Marked as reviewed by aph (Reviewer).

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


More information about the hotspot-dev mailing list