[12] RFR(S): 8210387: C2 compilation fails with "assert(node->_last_del == _last) failed: must have deleted the edge just produced"

Tobias Hartmann tobias.hartmann at oracle.com
Tue Sep 11 16:03:36 UTC 2018


Thanks Vladimir.

Best regards,
Tobias

On 11.09.2018 18:01, Vladimir Kozlov wrote:
> Looks good.
> 
> Thanks,
> Vladimir
> 
> On 9/11/18 1:31 AM, Tobias Hartmann wrote:
>> Hi,
>>
>> please review the following patch:
>> https://bugs.openjdk.java.net/browse/JDK-8210387
>> http://cr.openjdk.java.net/~thartmann/8210387/webrev.00/
>>
>> During CCP, before removing unreachable regions, we first replace all dead phi users with TOP by
>> calling PhaseIterGVN::replace_node. Replacing a phi node can trigger removal of other nodes some of
>> which might also be phi users of the same region. This breaks verification of the DUIterator because
>> only one node is expected to be removed. Very similar to the code in RegionNode::Ideal [1], we need
>> to refresh the iterator and start iterating from the beginning for as long as there is progress.
>>
>> Thanks,
>> Tobias
>>
>> [1] http://hg.openjdk.java.net/jdk/jdk/file/bbc7157ad9c5/src/hotspot/share/opto/cfgnode.cpp#l538
>>


More information about the hotspot-compiler-dev mailing list