[jdk17] RFR: 8269820: C2 PhaseIdealLoop::do_unroll get wrong opaque node

Hui Shi hshi at openjdk.java.net
Sat Aug 7 04:04:37 UTC 2021


On Tue, 3 Aug 2021 16:16:46 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> More discussion in previous PR(https://github.com/openjdk/jdk17/pull/208) is confilict with fix for JDK-8269752.
>> 
>> Opaque1 in main loop entry is expected only used in compare node's second input. However split if might clone opaque1 and replace original node with phi of opaque1 node. This causes assertion in CountedLoopNode::is_canonical_loop_entry now.
>> 
>> Fix is in BoolNode::Ideal, avoiding switching compare node's input when second input is phi of opaque1.
>> 
>> Test: Linux X64 tier1/2/3 release/fastdebug no regression.
>
> The issue is more complicated and I need more time to investigate it.
> I moved bug Fix version to JDK 18 (latest JDK).
> This is NOT new regression in JDK 17 - it failed in previous releases.
> Ffailure changed after 8269752 but on the same code path.
> 
> Please, keep current PR until we get the fix.

@vnkozlov @rwestrel Thanks for your help!

-------------

PR: https://git.openjdk.java.net/jdk17/pull/255


More information about the hotspot-compiler-dev mailing list