C2: multiple slices for flattened value type arrays
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Jan 10 14:49:38 UTC 2017
Hi Roland,
the webrev is missing.
Best regards,
Tobias
On 10.01.2017 15:23, Roland Westrelin wrote:
>
> This patch has a couple small improvements on top of Tobias' change to
> support flattened value type arrays: 1) it changes the type of flattened
> value type arrays from array of pointers to value types to array of
> value types 2) it tweaks alias analysis so each field of the value type
> element has its own slice.
>
> To achieve 2), TypeAryPtr now keeps track of a field_offset, the offset
> within the value type for the field being accessed.
>
> The change is big because I decided to introduce an Offset class to
> manipulates the 2 cases where we have an offset in the types (offset
> from a pointer: TypePtr::_offset and field offset in arrays:
> TypeAryPtr::_field_offset). This avoids some code duplication but
> mainly, this helps getting calls to type factory methods and
> constructors right: type factory methods and constructors have so many
> arguments, many of the same types or types that the c++ compiler can
> implicit cast between that it's very easy to call a factory method and
> pass a boolean where an int is expected and have no compiled time error.
>
> Roland.
>
More information about the valhalla-dev
mailing list