RFR: 8314024: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info
Roland Westrelin
roland at openjdk.org
Wed Aug 23 09:29:44 UTC 2023
A node is sunk from the pre loop into the main loop. That node, in the
main loop, feeds into a test. When the node is sunk it is pinned
between the main and pre loop. The test it feeds into is then
eliminated by range check elimination: the sunk node becomes input to
an expression that computes the new bound of the pre loop. The
resulting graph is broken because the sunk node is pinned below the
pre loop but used by the exit test of the pre loop.
The fix I propose is in `PhaseIdealLoop::try_sink_out_of_loop()`, to
skip nodes in pre loops that have a use in the companion main loop.
-------------
Commit messages:
- comments
- test
- fix
Changes: https://git.openjdk.org/jdk/pull/15399/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15399&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8314024
Stats: 78 lines in 2 files changed: 78 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/15399.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/15399/head:pull/15399
PR: https://git.openjdk.org/jdk/pull/15399
More information about the hotspot-compiler-dev
mailing list