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
Thu Sep 21 12:22:41 UTC 2017

Hi Roland,

thanks for the review!

On 21.09.2017 14:06, Roland Westrelin wrote:
> That looks reasonable to me. Why isn't a GrowableArray good enough
> anymore to keep track of value type nodes?

That's because with non-flattened value type fields (see my changes for 8185556), we need to "recursively" scalarize 
value types in safepoints. While processing a value type node in Compile::process_value_types(), other value type nodes 
that are on the _value_type_nodes list may become dead and are removed from the list screwing up the GrowableArray 
iterator. Using a node list is the easiest way to solve this.


More information about the valhalla-dev mailing list