RFR: 8266267: Remove unnecessary jumps in Intel Math Library StubRoutines
Jie Fu
jiefu at openjdk.java.net
Thu Apr 29 11:11:56 UTC 2021
On Thu, 29 Apr 2021 10:17:50 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Hi all,
>>
>> May I get reviews for this small change?
>>
>> If I look at the StubRoutines::libmPow carefully, an unnecessary jump instruction can be found, which is generated here [1].
>>
>> - - - [BEGIN] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> StubRoutines::libmPow [0x00007f0f8455ddd1, 0x00007f0f8455ef05] (4404 bytes)
>> --------------------------------------------------------------------------------
>> 0x00007f0f8455ddd1: push %rbp
>> 0x00007f0f8455ddd2: mov %rsp,%rbp
>> 0x00007f0f8455ddd5: jmpq 0x00007f0f8455ddda <--- unnecessary jump
>> 0x00007f0f8455ddda: sub $0x28,%rsp
>> 0x00007f0f8455ddde: vmovsd %xmm0,0x8(%rsp)
>> 0x00007f0f8455dde4: vmovsd %xmm1,0x10(%rsp)
>> ...
>>
>>
>> And similar issues can be found for StubRoutines::libmLog and StubRoutines::libmExp.
>>
>> - - - [BEGIN] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> StubRoutines::libmLog [0x00007f3fb94d48a6, 0x00007f3fb94d4b22] (636 bytes)
>> --------------------------------------------------------------------------------
>> 0x00007f3fb94d48a6: push %rbp
>> 0x00007f3fb94d48a7: mov %rsp,%rbp
>> 0x00007f3fb94d48aa: jmpq 0x00007f3fb94d48af <--- unnecessary jump
>> 0x00007f3fb94d48af: sub $0x18,%rsp
>> 0x00007f3fb94d48b3: vmovsd %xmm0,(%rsp)
>> 0x00007f3fb94d48b8: movabs $0x3ff0000000000000,%rax
>> ...
>>
>>
>>
>> - - - [BEGIN] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> StubRoutines::libmExp [0x00007f3fb94d4579, 0x00007f3fb94d48a6] (813 bytes)
>> --------------------------------------------------------------------------------
>> 0x00007f3fb94d4579: push %rbp
>> 0x00007f3fb94d457a: mov %rsp,%rbp
>> 0x00007f3fb94d457d: jmpq 0x00007f3fb94d4582 <--- unnecessary jump
>> 0x00007f3fb94d4582: sub $0x18,%rsp
>> 0x00007f3fb94d4586: vmovsd %xmm0,0x8(%rsp)
>> 0x00007f3fb94d458c: vunpcklpd %xmm0,%xmm0,%xmm0
>>
>>
>> I can't find a reason why we need an extra jump there.
>> So I suggest removing them.
>>
>> Testing:
>> - tier1 ~ tier3 on Linux/x64, no regression
>>
>> Am I missing something?
>>
>> Thanks.
>> Best regards,
>> Jie
>
> Looks good to me.
Thanks @TobiHartmann and @neliasso .
-------------
PR: https://git.openjdk.java.net/jdk/pull/3784
More information about the hotspot-compiler-dev
mailing list