RFR (S) JDK-8001345: VM crashes with assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Jun 20 19:06:31 PDT 2013
Niclas,
I think 8001345 fix is not complete.
With compressed oops membar points to LoadP node through DecodeN node
(as in bug case). Even if membar is only user of DecodeN node it does
not mean the Load node has only one user. There is optimization which
skip EncodeP->DecodeN chain so Load can have other uses.
I filed bug to address this issue:
8017243: 8001345 is incomplete
Fortunately I did not push 8001345 fix into hs24.
Thanks,
Vladimir
On 6/19/13 7:49 AM, Vladimir Kozlov wrote:
> On 6/19/13 12:19 AM, Roland Westrelin wrote:
>>> hash_delete(this);
>>> del_req(Precedent);
>>> phase->is_IterGVN()->_worklist.push(my_mem); // remove dead node
>>> later
>>
>> Is hash_delete(this) required? Isn't it done by
>> PhaseIterGVN::transform_old() before Ideal() is called?
>
> You are right, my bad. It is useless here. Unfortunately I pushed the
> fix into hs25 already, we will clean it up next time we touch this code.
> And will remove it from hs24 backport.
>
> Sorry about that,
> Vladimir
>
>>
>> Roland.
>>
More information about the hotspot-compiler-dev
mailing list