RFR 8219242 [lworld] C1 aastore on a Phi node needs flattened array check
ioi.lam at oracle.com
Thu Feb 21 04:17:39 UTC 2019
Hi Tobias, here's an updated version with your suggestions:
Note that I changed this line
1687 bool obj_store = x->elt_type() == T_OBJECT; assert(x->elt_type()
!= T_ARRAY, "never used");
because x->elt_type() is determine by the bytecode (Xastore) and no
bytecode will set it to T_ARRAY.
On 2/18/19 11:43 PM, Tobias Hartmann wrote:
> Hi Ioi,
> I assume the value->type()->is_object() check is to avoid emitting checks when we are storing a
> primitive? But what if 'value' has an exact type? For example, it could be java.lang.Integer and in
> this case we don't need a flattened array check.
> Also, it's confusing that you pass 'x' as value in line 2061.
> What if ValueArrayFlatten is disabled? needs_flattened_array_check() would still return true. I
> would suggest to move the array->as_Phi check into 'maybe_flattened_array'.
> Best regards,
> On 18.02.19 16:31, Ioi Lam wrote:
>> With this fix, all current C1 compiler test cases have passed :-)
>> My plan is to now enable the other tests that have been disabled for C1, and keep going ....
>> - Ioi
More information about the valhalla-dev