RFR: 8267968: [PPC64] Use prefixed load and addi instructions for better performance in POWER10 [v3]

Martin Doerr mdoerr at openjdk.java.net
Thu Jun 10 10:13:20 UTC 2021


On Thu, 10 Jun 2021 07:39:43 GMT, Kazunori Ogata <ogatak at openjdk.org> wrote:

>> src/hotspot/cpu/ppc/assembler_ppc.cpp line 364:
>> 
>>> 362:       // we avoid a buffer overrun in the actual code generation phase.
>>> 363:       nop();
>>> 364:     }
>> 
>> Scratch emit should be able to determine the size precisely, not just a pessimistic estimation. Please don't break this design.
>
> @TheRealMDoerr  I understand the design.  However, I'm wondering why the alignment can vary between scratch emit and real emit if the size can be determined precisely.  It is helpful if you could point out some sources of variation.

Scratch emit uses an empty buffer each time. Only the real emit uses real offsets.
The concept is to make padding decisions only at places where the final padding requirements are known. Regarding C2, the compiler handles the padding based on compute_padding function and the emit sections should not contain alignment dependent nops.

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

PR: https://git.openjdk.java.net/jdk/pull/4267


More information about the hotspot-dev mailing list