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

Martin Doerr mdoerr at openjdk.java.net
Mon May 3 14:11:52 UTC 2021


On Mon, 3 May 2021 14:04:22 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.
>
> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add temp node placement assertion.

Hi Götz, thanks for reviewing!
Yes, block must always dominate tempb after the if. Otherwise, the placement would be illegal.
It's known that val (DecodeNNode) is movable to block at this place. So its inputs must be live along the same path.
I've added a sanity check.

Thanks for the reviews! I'll integrate it tomorrow if everything's fine.

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

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


More information about the hotspot-compiler-dev mailing list