RFR(S): 8210389: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Sep 28 18:24:57 UTC 2018


subsume_by() + disconnect_inputs() are used by other code in final_graph_reshaping_impl(). If it 
does not work in your case it may not work for other cases to and should be solved in general.

May be we can modify final_graph_reshaping_walk() and final_graph_reshaping_impl() to remove dead 
code. Or do separate path over graph like PhaseRemoveUseless. One thing to point is that 
verify_graph_edges() call after Optimize() should have no_dead_code = true to catch all cases we 
missing.

Thanks,
Vladimir

On 9/28/18 1:23 AM, Roland Westrelin wrote:
> 
> Hi Vladimir,
> 
> Thanks for looking at this.
> 
>> Why you are not using subsume_by()?
> 
> Instead of disconnect_inputs()? Or as a replacement for the loop? I want
> all nodes that become useless as a result of the edge removal to be
> disconnected. subsume_by() wouldn't do as that AFAICT.
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list