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