RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis"
tobias.hartmann at oracle.com
Thu Sep 21 12:22:41 UTC 2017
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