RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis"

Tobias Hartmann tobias.hartmann at oracle.com
Tue Sep 19 10:00:05 UTC 2017


Hi,

please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8186716
http://cr.openjdk.java.net/~thartmann/8186716/webrev.00/

C2 crashes with an assert while trying to split a value type through a PhiNode. We need to avoid this because value 
types are not merged through Phis but each value input needs to be merged individually.

I fixed this by scalarizing value types in safepoints right after parsing (and incremental inlining) such that value 
type nodes are only connected to allocate nodes during loop optimizations. After removing and unlinking redundant 
allocations, the value type nodes are dead and no splitting is required.

All tests pass.

Thanks,
Tobias



More information about the valhalla-dev mailing list