RFR S 8214742 [lworld][c1] Block merging need to preserve type info for flattened arrays
Ioi Lam
ioi.lam at oracle.com
Wed Dec 5 17:50:34 UTC 2018
Hi Tobias,
Thanks for the review. I've incorporated your suggestions and pushed.
- Ioi
On 12/4/18 2:07 AM, Tobias Hartmann wrote:
> Hi Ioi,
>
> I would prefer to make this more generic (later we might want to propagate type information for
> other bytecodes as well, not only for arrays). So the comment for Phi::_exact_type should be more
> general and ValueStack::merge_if_flattened_array_types should be renamed to ValueStack::merge_types
> or something. I think that method can also be simplified to:
>
> if (new_value->is_flattened_array() &&
> (existing_value == NULL || existing_value->is_flattened_array())) {
> assert(existing_value == NULL || existing_value->exact_type() == new_value->exact_type(), "must be
> guaranteed by verifier");
> return new_value->exact_type();
> }
> return NULL;
>
> and a comment can be added stating that we currently only merge types of flattened arrays.
>
> Thanks,
> Tobias
>
> On 04.12.18 00:51, Ioi Lam wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8214742
>> http://cr.openjdk.java.net/~iklam/valhalla/8214742-preserve-typeinfo-for-flattened-array.v01/
>>
>> The fix is for code like this, where the aaload bytecode needs to know that the array is flattened.
>>
>> static int test(boolean b) {
>> VT[] va;
>> if (b) {
>> va = new VT[5];
>> } else {
>> va = new VT[10];
>> }
>> return va[0].v1; <<<< here
>> }
>>
>> Thanks
>>
>> - Ioi
>>
More information about the valhalla-dev
mailing list