JIT optimization broke mapping between compiled code and byte-code instructions on JDK 14 / 15EAP

Andrew Haley aph at redhat.com
Fri Aug 14 08:24:45 UTC 2020


On 14/08/2020 08:43, Сергей Цыпанов wrote:

 > The problem is that I don't have any mention of `putfield count` in
 > generated assembly at all.

It's here:

   0.04%                      ↘   │  0x00007f3717d4617f:   movl   $0x0,0x14(%r8)
   0.08%                          │  0x00007f3717d46187:   lock addl $0x0,-0x40(%rsp)

There's never been any guarantee that debuginfo will be complete after
transformations. Optimization rewrites things to such an extent that
it's not really possible anyway: operations are reorganized and
combined in such a way that the relationship between incoming bytecode
and generated code is not 1:1.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



More information about the hotspot-compiler-dev mailing list