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

Martin Doerr mdoerr at openjdk.java.net
Fri Apr 30 09:50:20 UTC 2021

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.


Commit messages:
 - More generic condition for input node hoisting decision
 - Fix indentation.
 - Also support hoisting of load Base input. Remove assertion again which would require more changes.
 - Move hoisting of MachTemp inputs before hoisting of DecodeN. Add stronger assertion to PhaseCFG::verify()
 - 8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind

Changes: https://git.openjdk.java.net/jdk/pull/3637/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3637&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8265784
  Stats: 14 lines in 1 file changed: 13 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3637.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3637/head:pull/3637

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

More information about the hotspot-compiler-dev mailing list