RFR: 8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind
Martin Doerr
mdoerr at openjdk.java.net
Sat May 1 13:44:49 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.
Hi Vladimir, thanks for reviewing my PR.
Yes, base is an immediate constant (CompressedOops::base()). It's not a load from memory.
MachTemp nodes are added and connected by ADLC generated code (ArchDesc::defineExpand). PPC64 and s390 code contains "expand" and "postalloc_expand" rules. E.g. decodeN_Ex in ppc64.ad uses a register with TEMP effect.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3637
More information about the hotspot-compiler-dev
mailing list