8192762: LoopNode::verify_strip_mined() fails with "assert failed: only phis"

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Dec 1 18:56:40 UTC 2017


Agree. We should not clone Phi - it is not executable node (no benefots from clonning) and it will 
complicate graph.

I will start testing.

Thanks,
Vladimir

On 12/1/17 2:22 AM, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/8192762/webrev.00/
> 
> At the end of optimizations, the number of phis for the outer and inner
> loops of a strip mined loop nest should be the same. That's verified in
> Compile::final_graph_reshaping(). Compile::final_graph_reshaping()
> clones the TypeFunc::Parms argument of uncommon calls. If that argument
> is a Phi of the inner loop, then a new Phi is added and the verification
> logic breaks. I suppose the argument cloning is so setting the argument
> is sank in an uncommon path. In that case it doesn't make sense AFAIU to
> clone the Phi so I propose any Phi be skipped by that code.
> 
> I didn't manage to write a test case. I could get a method with an
> uncommon call whose TypeFunc::Parms argument is a Phi but processing
> order of nodes by Compile::final_graph_reshaping() wouldn't trigger the
> bug (loop head processed first).
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list