RFR: 8271954: C2: assert(false) failed: Bad graph detected in build_loop_late [v2]

Roland Westrelin roland at openjdk.java.net
Tue Aug 24 15:05:29 UTC 2021


On Tue, 24 Aug 2021 14:48:41 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

>> src/hotspot/share/opto/loopPredicate.cpp line 283:
>> 
>>> 281:           assert(!in->is_CFG(), "must be data node");
>>> 282:           Node* in_clone = old_new->at(in->_idx);
>>> 283:           if (in_clone != NULL && in_clone->_idx >= last_idx) {
>> 
>> Doesn't in_clone != NULL implies in_clone->_idx >= last_idx? Should it be an assert?
>
> I'm not sure because `old_new` is shared in loopopts. I was concerned that I find old mappings here which I tried to exclude.

Shouldn't it be reset between use i.e.:
memset( worklist.adr(), 0, worklist.Size()*sizeof(Node*) );
?

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

PR: https://git.openjdk.java.net/jdk/pull/5185


More information about the hotspot-compiler-dev mailing list