RFR: 8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind

Vladimir Kozlov kvn at openjdk.java.net
Fri Apr 30 16:52:52 UTC 2021

On Thu, 22 Apr 2021 18:58:28 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> PPC64 and s390 have DecodeN implementations which use a MachTemp input. When LCM hoists the DecodeN, the MachTemp nodes reside in the old block, but should get hoisted together with the DecodeN node.
> Same is true for load Base input which exists on s390 for example. Unfortunately, that's just a platform specific MachNode which is not nicely recognizable in LCM.

Moving additional TEMP and CONST? input edges to the same block is correct.
Is base always constant (like CompressedOops::base())? Otherwise you may need add anti dependences for load.
Can you show where MachTemp edges are added for DecodeN?


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

More information about the hotspot-compiler-dev mailing list