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