RFR: 8262017: C2: assert(n != __null) failed: Bad immediate dominator info. [v5]
Christian Hagedorn
chagedorn at openjdk.java.net
Tue Jun 15 11:19:10 UTC 2021
> The wrong dominance information is caused by a `ConvL2I` node whose input gets a wrong type which is out of the range of the `ConvL2I`. As a consequence, the node becomes top and some data nodes are folded away which eventually results in the dominance assertion failure.
>
> The wrong type information can be traced back to the overflow/underflow handling in range check elimination. Originally, the code in `PhaseIdealLoop::add_constraint()` covered the following special case for the adjustment of the pre loop limit:
> https://github.com/openjdk/jdk/blob/cd33abb136d415455090cef4fe6211d9e6940948/src/hotspot/share/opto/loopTransform.cpp#L2423-L2456
>
> This code, however, was removed later by accident:
> https://github.com/openjdk/jdk/commit/afd852ccb8f8d36c721963ba68de695ce3e0e23d#diff-6a59f91cb710d682247df87c75faf602f0ff9f87e2855ead1b80719704fbedffL2370-L2394
>
> This was only revealed after enabling more precise type information for phi nodes in [JDK-8257813](https://bugs.openjdk.java.net/browse/JDK-8257813) after which the testcase starts to fail.
>
> The proposed fix is straight forward to reintroduce the wrongly removed code and adapt it to long instead of int.
>
> Thanks,
> Christian
Christian Hagedorn has updated the pull request incrementally with one additional commit since the last revision:
set_subtree_ctrl()
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/4362/files
- new: https://git.openjdk.java.net/jdk/pull/4362/files/775153a4..8ac776c4
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4362&range=04
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4362&range=03-04
Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/4362.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4362/head:pull/4362
PR: https://git.openjdk.java.net/jdk/pull/4362
More information about the hotspot-compiler-dev
mailing list