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