RFR: JDK-8272574: C2: assert(false) failed: Bad graph detected in build_loop_late [v7]
Christian Hagedorn
chagedorn at openjdk.java.net
Mon Aug 23 07:56:36 UTC 2021
On Mon, 23 Aug 2021 03:14:01 GMT, 王超 <github.com+25214855+casparcwang at openjdk.org> wrote:
>> Current loop predication will promote nodes(with a dependency on a later control node) to the insertion point which dominates the later control node.
>>
>> In the following example, loopPrediction will promote node 434 to the outer loop(predicted insert point is right after node 424), and it depends on control node 207. But node 424 dominates node 207, which means after the promotion, the cloned nodes have a control dependency on a later control node, which leads to a bad graph.
>>
>> 
>>
>> 
>
> 王超 has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix the copyright
src/hotspot/share/opto/loopPredicate.cpp line 671:
> 669: // then it will lead to cyclic dependency.
> 670: // Previously promoted loop predication is in the same loop of predication
> 671: // point.
Move these comments down to the path with the assert. I also suggest to add the following: "This situation can occur when pinning nodes too conservatively. - can we do better?"
-------------
PR: https://git.openjdk.java.net/jdk/pull/5142
More information about the hotspot-compiler-dev
mailing list