RFR: 8265938: C2's conditional move optimization does not handle top Phi [v2]
Tobias Hartmann
thartmann at openjdk.java.net
Tue Apr 27 08:46:05 UTC 2021
> C2's CCP optimization sets the type of a PhiNode to TOP because it became dead after loop unrolling. Now since that node is not reachable from the bottom due to an infinite loop at the end of the method, CCP does not enqueue the PhiNode for IGVN. As a result, the dead subgraph is not removed. During loop opts, the conditional move optimization fails on the PhiNode because its type is top. The expected behavior is to simply bail out with "COMPILE SKIPPED: infinite loop (retry at different tier)".
>
> I suggest to fix this by simply handling a TOP Phi in the conditional move optimization code.
>
> This issue was reported by John Jiang (johnsjiang at tencent.com).
>
> Thanks,
> Tobias
Tobias Hartmann has updated the pull request incrementally with one additional commit since the last revision:
Use daemon thread and adjust timeout
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3684/files
- new: https://git.openjdk.java.net/jdk/pull/3684/files/d0e0e819..a0a170d2
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3684&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3684&range=00-01
Stats: 12 lines in 2 files changed: 8 ins; 1 del; 3 mod
Patch: https://git.openjdk.java.net/jdk/pull/3684.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3684/head:pull/3684
PR: https://git.openjdk.java.net/jdk/pull/3684
More information about the hotspot-compiler-dev
mailing list